我尝试制作一个自定义的Drawable,它从一个路径中创建一个Drawable。我知道这可以使用ShapeDrawable完成,但我想在同一个Drawable上更频繁地绘制相同的路径(但在y轴上移动),当然还要学习如何实现自定义Drawable。
我的代码列在下面,遗憾的是活动没有显示任何内容。
这是我的自定义Drawable类:
public class TestDrawable extends Drawable {
Path path;
Paint strokePaint;
public TestDrawable(Path path){
this.path = path;
strokePaint = new Paint();
strokePaint.setColor(Color.RED);
strokePaint.setStyle(Paint.Style.STROKE);
}
@Override
public void draw(Canvas canvas) {
canvas.drawPath(path, strokePaint);
}
@Override
public void setAlpha(int i) {
}
@Override
public void setColorFilter(ColorFilter colorFilter) {
}
@Override
public int getOpacity() {
return PixelFormat.OPAQUE;
}
}
这是我测试的主要活动:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView testImage = (ImageView) findViewById(R.id.testImage);
Path path = CardBuilder.getPath();
Drawable d = new TestDrawable(path);
testImage.setImageDrawable(d);
}
}
路径有效(之前使用ShapeDrawable测试)。 我错过了什么?
附加问题: 如何使我的Drawable刻度适合我后来用于显示Drawable的ImageView的度量?