在我的Android应用程序中,我有一个像这样的循环背景的textview。
正在使用以下代码。
<TextView
android:id="@+id/tv4"
android:layout_width="5dp"
android:layout_height="5dp"
android:background="@drawable/circle"
android:layout_alignParentRight="true"
android:layout_marginRight="50dp"
android:layout_centerVertical="true"
/&GT;
circle.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ff0000" />
<corners android:topLeftRadius="60dp" android:topRightRadius="60dp" android:bottomLeftRadius="60dp" android:bottomRightRadius="60dp" />
</shape>
当触摸圆圈时,我希望它具有像此图像一样的圆形边界。即使鼠标移开,它也应该保持这种状态。怎么办呢?
答案 0 :(得分:2)
使用您想要的不同状态的drawable创建一个xml drawable。 https://developer.android.com/guide/topics/resources/drawable-resource.html#StateList 然后将该drawable设置为您的背景。
答案 1 :(得分:1)
将circle.xml
更改为选择器,在按下状态时显示一个drawable,另一个用于默认状态(未按下):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/circle_pressed" />
<item>
<shape android:shape="oval">
<solid android:color="#762C54" />
</shape>
</item>
</selector>
然后创建一个可绘制资源circle_pressed.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape>
<solid android:color="#ff762c54" />
<padding android:bottom="15dp"
android:top="15dp"
android:left="15dp"
android:right="15dp"
/>
</shape>
</item>
<item>
<shape android:shape="oval">
<stroke android:width="2dp" android:color="#ffffff"/>
<size android:height="105dp" android:width="105dp"/>
</shape>
</item>
</layer-list>
这个drawable是一个将白色环放在紫色圆圈上的图层列表。
您的TextView
必须是clickable
:
<TextView
android:id="@+id/tv4"
android:clickable="true"
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@drawable/circle"
android:layout_alignParentRight="true"
android:layout_marginRight="50dp"
android:layout_centerVertical="true" />