我试图绘制一个可绘制的背景与路径。但我得到了一个我无法绘制的点,因为我需要接收背景的对象的大小。是否有函数来查找我将绘制的特定视图的大小?在Android中绘制无任何尺寸的自定义绘图
public class CustomDrawableEditText extends Drawable{
private Context context;
public CustomDrawableEditText(Context context) {
// TODO Auto-generated constructor stub
this.context = context;
}
@Override
public void draw(Canvas canvas) {
// TODO Auto-generated method stub
Path path = new Path();
Paint paint = new Paint();
path.moveTo(0, 0);
path.lineTo(10, 0);
path.moveTo(0, 0);
path.lineTo(0, Y);
path.lineTo(10, Y);
path.moveTo(X, 0);
path.lineTo(X-10, 0);
path.moveTo(X, 0);
path.lineTo(X, X);
path.lineTo(X-10, X);
paint.setColor(context.getResources().getColor(R.color.orange));
paint.setStrokeWidth(2);
paint.setStyle(Paint.Style.STROKE);
canvas.drawPath(path, paint);
}
private int getY() {
final Resources res = context.getResources();
final float scale = res.getDisplayMetrics().density;
return (int) (res.getDimension(R.dimen.dim4) * scale + 0.5f);
}
@Override
public int getOpacity() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void setAlpha(int alpha) {
// TODO Auto-generated method stub
}
@Override
public void setColorFilter(ColorFilter cf) {
// TODO Auto-generated method stub
}
}
我已经通过getwidth和getheight但都是0; – Tsunaze 2013-03-04 15:52:08
@Tsunaze我又增加了一行。 – poitroae 2013-03-04 15:53:18
有问题的视图通过单击按钮后的layoutinflater显示。我认为这是在布局过程之后。 – Tsunaze 2013-03-04 15:54:40