2011-03-23 15 views
10

मुझे एंड्रॉइड में पृष्ठभूमि रंग परिवर्तन के साथ गोल कोने वाले बटन को करने की आवश्यकता है।एंड्रॉइड में पृष्ठभूमि रंग के साथ गोल कोने वाला बटन

मैं यह कैसे कर सकता हूं?

उदाहरण लिंक/कोड की बहुत सराहना की जाती है।

उत्तर

37

आप एंड्रॉइड के आकार ड्रायबल्स का उपयोग करना चाहते हैं। http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

drawable/cool_button_background.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <corners 
     android:radius="@dimen/corner_radius" /> 
    <gradient 
     android:angle="270" 
     android:startColor="@color/almost_white" 
     android:endColor="@color/somewhat_gray" 
     android:type="linear" /> 
</shape> 

तो फिर तुम उन आकार ड्रॉएबल से एक "चयनकर्ता" drawable बनाने के लिए होगा। यह आपको राज्य के आधार पर बटन को अलग दिखने की अनुमति देता है। आईई: दबाया, ध्यान केंद्रित, आदि http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

drawable/cool_button.xml

<?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/cool_inner_press_bottom" /> 
    <item android:state_focused="true" android:state_enabled="true" 
     android:state_window_focused="true" 
     android:drawable="@drawable/cool_inner_focus_bottom" /> 
    <item 
     android:drawable="@drawable/cool_button_background" /> 
</selector> 

बोनस: आप कर सकते हैं बटन के लिए एक शैली बनाने के लिए ताकि आप उन्हें कार्यक्रम में एक जैसा रहना हो सकता है चाहता हूँ। आप इस चरण को काट सकते हैं और बस बटन के एंड्रॉइड सेट कर सकते हैं: पृष्ठभूमि = "@ drawable/cool_button"।

मूल्यों/styles.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyCoolButton"> 
     <item name="android:background">@drawable/cool_button_background</item> 
    </style> 
</resources> 

अंत में, बटन!

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:background="@drawable/appwidget_bg"> 
    <Button 
     android:id="@+id/btnAction" 
     android:layout_width="wrap_content" 
     android:layout_weight="wrap_content" 
     style="@style/CoolButton" 
     /> 
</LinearLayout> 
+0

छोटे सुधार शैली = "@ शैली/CoolButton" शैली को बदला जाना चाहिए = "@ शैली/MyCoolButton" – user2582651

8

आयात PorterDuff और setColorFilter() का उपयोग के रूप में इस प्रकार है

import android.graphics.PorterDuff.Mode; 

Button btn = (Button) findViewById(R.id.myButton); 
btn.getBackground().setColorFilter(Color.GRAY, Mode.MULTIPLY); 
+0

यह होगा पाठकों के लिए सहायक यदि आपने केवल कोड के बजाय स्पष्टीकरण छोड़ा है। –

संबंधित मुद्दे