再会,
我想创建一个可以添加到我的 Android 应用程序视图的新对象,
我只是想要一个圆圈显示为红色或绿色,具体取决于网络是否连接。我想要一个类似于单选按钮的外观,只是颜色必须改变。
最好只使用图像吗?或者我应该创建一个新的视图对象/组件?如果是这样,我该怎么做?
再会,
我想创建一个可以添加到我的 Android 应用程序视图的新对象,
我只是想要一个圆圈显示为红色或绿色,具体取决于网络是否连接。我想要一个类似于单选按钮的外观,只是颜色必须改变。
最好只使用图像吗?或者我应该创建一个新的视图对象/组件?如果是这样,我该怎么做?
一个简单的选择:您可以使用 PNG 图像。您需要一张要使用的两种颜色的图像。如果你喜欢,你可以用你的 PNG 创建一个 9Patch。9Patch 为您提供可以拉伸以适合的图像。
然后在 XML 文件中使用 StateList drawable。Statelist drawable 使您能够根据状态更改图像
这是您的可绘制文件夹中的 button_statelist.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/redbutton" />
<item android:drawable="@drawable/bluebutton" />
</selector>
您可以使用其他状态而不是 state_pressed
在您的布局文件夹中,您将按钮定义为:
<Button
android:id="@+id/button1"
android:background="@drawable/button_statelist"
/>
看看这个:android - 按钮样式
您可以将样式应用于您的按钮/图像按钮/图像视图,您可以在其中定义背景的外观和边框半径以获取圆形。将其另存为 your_style.xml 在 drawable 文件夹中。代码看起来像这样:
<shape>
<solid
android:color="#f00" />
<stroke
android:width="1dp"
android:color="#d00" />
<corners
android:radius="40dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
使用 设置形状和背景颜色android:background="@drawable/your_style"
。如果你想要一个额外的图像(为了获得那个单选按钮的外观),你只需添加android:drawableLeft="@drawable/your_overlay_image
.