这是我的代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_layer_drawable2);
ImageView i = (ImageView) findViewById(R.id.i);
LayerDrawable ld = new LayerDrawable(new Drawable[]{dra(this, R.drawable.ic_insert_drive_file_black_48dp), new Rect()});
ld.setLayerInsetTop(1, 200);
ld.setLayerInsetLeft(1, 200);
i.setImageDrawable(ld);
}
这里是Rect
class Rect extends Drawable {
Context c;
@Override
public void draw(Canvas canvas) {
c = getApplicationContext();
Paint p = new Paint();
p.setStrokeWidth(2);
p.setStyle(Paint.Style.STROKE);
p.setColor(col(c, R.color.colorAccent));
canvas.drawRect(100, 100, 200, 200, p);
}
@Override
public void setAlpha(int alpha) {
}
@Override
public void setColorFilter(ColorFilter colorFilter) {
}
@Override
public int getOpacity() {
return 0;
}
}
输出是:
我希望将矩形移到ImageView的右下角,怎么做?
当我使用setLayerInsetTop
时,它只会更改矩形的大小
答案 0 :(得分:0)
我找到原因,在Rect类canvas.drawRect(0, 0, 100, 100, p)
中,它将强制rect指向指针(0,0),我可以将“0,0”改为其他