0

再会,

我想创建一个可以添加到我的 Android 应用程序视图的新对象,

我只是想要一个圆圈显示为红色或绿色,具体取决于网络是否连接。我想要一个类似于单选按钮的外观,只是颜色必须改变。

最好只使用图像吗?或者我应该创建一个新的视图对象/组件?如果是这样,我该怎么做?

4

2 回答 2

0

一个简单的选择:您可以使用 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"      

       />  
于 2013-03-09T09:37:01.377 回答
0

看看这个: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.

于 2013-03-09T09:41:59.567 回答