我正在尝试动态创建一个可绘制对象,以用作自定义线性布局的背景。它需要有哈希标记之类的(没什么大不了的),而且还需要有数字来标记哈希标记的内容(就像一把尺子)。我知道我可以创建文本元素并将它们放入线性布局中,然后将哈希标记放入可绘制对象中,但我希望也将它们放入可绘制对象中,这样我就不必进行两次测量计算。
这是一个简短的例子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;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)