好日子,的Android創建自定義的UI對象,紅色/綠色連接按鈕
我想創建一個新的對象,我可以添加到我的Android應用程序查看,
要顯示我只是想圓紅色或綠色取決於網絡是否連接。我想要一個類似於單選按鈕的顏色,只是顏色必須改變。
最好只使用圖片嗎?或者我應該創建一個新的視圖對象/組件?如果是這樣,我該怎麼做呢?
好日子,的Android創建自定義的UI對象,紅色/綠色連接按鈕
我想創建一個新的對象,我可以添加到我的Android應用程序查看,
要顯示我只是想圓紅色或綠色取決於網絡是否連接。我想要一個類似於單選按鈕的顏色,只是顏色必須改變。
最好只使用圖片嗎?或者我應該創建一個新的視圖對象/組件?如果是這樣,我該怎麼做呢?
一個簡單的選項: 您可以使用PNG圖像。您需要使用兩種顏色的圖像。如果你喜歡,你可以從你的PNG創建一個9Patch。 9Patch爲您提供可以拉伸以適合的圖像。
然後,在您的XML文件中使用可繪製的StateList。 Statelist繪製給你更改圖像取決於狀態的能力
這是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 - button style
Yout可以將樣式應用於您的按鈕/ imagebutton/imageview,您可以在其中定義背景的外觀和邊框半徑以獲得圓圈。將其作爲your_style.xml保存在可繪製文件夾中。代碼如下所示:
<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
。