日本語の縦書きはどのように実現するか?
サンプルコードなどご提示いただければ幸いです。Thanks!
Androidは、標準では縦書き表示に対応していません。Canvasを使って
独自に実装する必要があります。
thanks,
Keiji
サンキュー! Magic@東京です。
とりあえず、今日の試したソースを展開致します。
本物の日本語縦書きではないですが、、、
import android.app.Activity;
import android.os.Bundle;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class TateMoji extends Activity {
class MySurfaceView extends SurfaceView implements
SurfaceHolder.Callback {
public MySurfaceView(Context context) {
super(context);
getHolder().addCallback(this);
}
public void surfaceChanged(SurfaceHolder holder, int format, int
width, int height) {
Log.d("TEST", "surfaceChanged");
}
public void surfaceCreated(SurfaceHolder holder) {
Log.d("TEST", "surfaceCreated");
doDraw();
}
public void surfaceDestroyed(SurfaceHolder holder) {
Log.d("TEST", "surfaceDestroyed");
}
void doDraw() {
Canvas canvas = getHolder().lockCanvas();
canvas.save(); // ★ここで状態を保存
canvas.rotate(90.0f);
Paint paint = new Paint();
canvas.drawColor(Color.WHITE);
paint.setColor(Color.BLUE);
paint.setAntiAlias(true);
paint.setTextSize(24);
canvas.drawText("Hello, SurfaceView!", paint.getTextSize(), 0,
paint);
canvas.restore(); // ★ここで状態を復元
getHolder().unlockCanvasAndPost(canvas);
}
}
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MySurfaceView(this));
}
}
以上、よろしくお願いいたします。
On 4月8日, 午後5:08, pie <piecros...@gmail.com> wrote:
> ブラウザは縦書きに対応してますね。ルビまで表示できるようです。
> WebKit貼っちゃう手はどうですか。