我的项目中要求在运行时动态画一个圆。因此,为此目的,我使用ShapeDrawable以编程方式创建圆形,但是不幸的是,我在ShapeDrawable中找不到CircleShape的任何类或方法,而是只找到了OvalShape()
。因此,请帮助我通过传递Shape的圆形的直径或半径来绘制一个圆形。提前致谢。任何类型的自定义对我修复解决方案都是有用的。
我用于ShapeDrawable的代码是
public static ShapeDrawable drawCircle (Context context, int width, int height, int color) {
//////Drawing oval & Circle programmatically /////////////
ShapeDrawable oval = new ShapeDrawable (new OvalShape ());
oval.setIntrinsicHeight (height);
oval.setIntrinsicWidth (width);
oval.getPaint ().setColor (color);
return oval;
}
在
MainActivity.java
中使用的代码if(Build.VERSION.SDK_INT >= 16) {
txtCount.setBackground (Util.drawCircle (MainActivity.this, 50, 50, getResources ().getColor (R.color.yellow)));
txtHotelCount.setText ("20");
}else{
txtCount.setBackgroundDrawable (Util.drawCircle (MainActivity.this, 50, 50, getResources ().getColor (R.color.yellow)));
txtHotelCount.setText ("20");
}
我的项目中用于的xmlt xmlView xmlt
txtCount
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="@color/white">
<TextView
android:id="@+id/txt_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/text_grey"
android:gravity="center"
android:textSize="12sp"
android:padding="2dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/text_grey"
android:text="AVAILABLE"
android:layout_marginLeft="10dp"
android:gravity="center"
/>
</LinearLayout>
但是即使将宽度和高度设置为50,也仍然没有运气。该属性的行为仍然像椭圆形。
最佳答案
<TextView
android:id="@+id/txt_count"
android:layout_width="50dp"
android:layout_height="50dp"
android:textColor="@color/text_grey"
android:gravity="center"
android:textSize="12sp"
android:padding="2dp"
/>