我使用函数drawCircle(int diameter)
返回ShapeDrawable
对象,它是一个OvalShape。然后,我使用ImageView.setImageDrawable()
设置OvalShape。但是ImageViews
仍然为空。如何正确执行?
功能drawCircle()
:
public ShapeDrawable drawCircle (int diameter) {
OvalShape ovalShape = new OvalShape();
ShapeDrawable drawable = new ShapeDrawable(ovalShape);
drawable.getPaint().setColor(getResources().getColor(R.color.textColorHint));
drawable.getPaint().setStyle(Paint.Style.FILL_AND_STROKE);
drawable.getPaint().setStrokeWidth((float)2);
drawable.setBounds(0 ,0, diameter, diameter);
return drawable;
}
设置ImageView
:
one_img.setImageDrawable(drawCircle(selector_one_diameter));
two_img.setImageDrawable(drawCircle(selector_two_diameter));
首先,我尝试使用.xml
文件描述椭圆形。但是由于dimens.xml
中的值无法用Java代码重写,因此我无法动态更改椭圆形的大小。如果您可以提出其他建议,那就再好不过了!
答案 0 :(得分:0)
这可能是由于您尚未为可绘制对象设置宽度,高度。您可以使用以下代码设置默认大小。
drawable.setIntrinsicWidth();
drawable.setIntrinsicHeight();