カスタム線形レイアウトの背景として使用するために、オンザフライでドローアブルを作成しようとしています。ハッシュマークなど(大したことではありません)が必要ですが、ハッシュマークが何であるかを示す数字(定規など)も必要です。テキスト要素を作成してlinearlayout内に配置し、drawable内にハッシュマークを配置するだけでよいことはわかっていますが、drawable内にもそれらを配置したいので、測定計算を2回行う必要はありません。
72319 次
5 に答える
100
TextDrawable
以下は、通常のドローアブルのように機能するが、唯一のコンストラクター変数としてテキストを指定できるの簡単な例です。
public class TextDrawable extends Drawable {
private final String text;
private final Paint paint;
public TextDrawable(String text) {
this.text = text;
this.paint = new Paint();
paint.setColor(Color.WHITE);
paint.setTextSize(22f);
paint.setAntiAlias(true);
paint.setFakeBoldText(true);
paint.setShadowLayer(6f, 0, 0, Color.BLACK);
paint.setStyle(Paint.Style.FILL);
paint.setTextAlign(Paint.Align.LEFT);
}
@Override
public void draw(Canvas canvas) {
canvas.drawText(text, 0, 0, paint);
}
@Override
public void setAlpha(int alpha) {
paint.setAlpha(alpha);
}
@Override
public void setColorFilter(ColorFilter cf) {
paint.setColorFilter(cf);
}
@Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT;
}
}
于 2012-01-12T06:52:43.693 に答える
15
「Professional Android 2 Application Development」(Reto Meier 著) という本を読みました。とりわけ、テキストやマーカーなどを「描画」する単純なコンパス アプリケーションを作成するサンプル プロジェクトが含まれています。
簡単に説明すると、クラスを拡張してメソッドandroid.view.View
をオーバーライドするクラスを作成するということです。onDraw(Canvas)
本書のすべてのソース コードは、http: //www.wrox.com/WileyCDA/WroxTitle/Professional-Android-2-Application-Development.productCd-0470565527,descCd-DOWNLOAD.htmlからダウンロードできます。コードをダウンロードして、"Chapter 4 Compass" という名前のプロジェクトの中を見ると、探しているものが見つかると思います :)
于 2010-10-19T21:21:49.273 に答える