2012-03-30 20 views
11

एंड्रॉयड में Toggle buttons दिखता नीचे की तरह हैंटॉगल बटन

Iphone

और, हम शामिल हो सकते हैं टॉगल बटन की आईफोन कार्यक्षमता जैसे टॉगल सुविधा को खींचें।

इस कार्रवाई को कैसे पूरा करें? अग्रिम में धन्यवाद। इस लिंक पर

+0

मेरा उत्तर देखें: http://www.mokasocial.com/2011/07/ sexly-styled-toggle-button-for-android/ –

+0

डाउनवोट के कारण? – Praveenkumar

+0

यह मैं नहीं हूं, मैं इस तरह के प्रश्न के लिए डाउनवोट नहीं करूँगा, लेकिन मुझे लगता है कि ऐसा इसलिए है क्योंकि आपने अभी तक जो भी प्रयास नहीं किया है, वह सिर्फ पूरे उत्तर की प्रतीक्षा कर रहा है, शायद यह भी क्योंकि एंड्रॉइड दिशानिर्देशों में यह कहा गया है: अन्य प्लेटफार्मों से नकल यूआई तत्व http://developer.android.com/design/patterns/pure-android.html –

उत्तर

17

और जानकारी: http://www.mokasocial.com/2011/07/sexily-styled-toggle-buttons-for-android/

<ToggleButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/toggle_me"/> 

और drawable होगा कुछ की तरह:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" 
     android:drawable="@drawable/toggle_me_on" /> <!-- checked --> 
    <item android:drawable="@drawable/toggle_me_off" /> <!-- default/unchecked --> 
</selector> 
+0

+1 अच्छा दृष्टिकोण। – Praveenkumar

+0

मेरे प्रश्न को यहां पोस्ट करते समय मुझे यह लिंक पहले ही मिल चुका है। वैसे भी, आपके लिंक – Praveenkumar

+0

के लिए धन्यवाद शायद आप इस जवाब को स्वीकार करने पर विचार कर सकते हैं यदि यह आपकी आवश्यकताओं के अनुरूप है ... –

0

बंद की और बटन पर सभी छवियों को लेने के लिए और की तरह रिश्तेदार लेआउट में एक लेआउट बनाने के यह

  <RelativeLayout 
       android:id="@+id/setting1" 
       android:layout_width="90dp" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentTop="true" 
       android:background="@drawable/switchon" 
       android:clickable="true" 
       android:onClick="setting1Click" > 

       <ImageView 
        android:id="@+id/settingicon" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:src="@drawable/switchball" /> 

       <TextView 
        android:id="@+id/calsettingtxt" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_centerVertical="true" 
        android:layout_marginRight="10dp" 
        android:layout_toLeftOf="@+id/settingicon" 
        android:text="@string/settingon" 
        android:textColor="@color/black" 
        android:textSize="18sp" 
        android:textStyle="bold" /> 
      </RelativeLayout> 

तब कोड में जब दबाया जाता है

6

Android-Switch-Demo उदाहरण से नीचे कोड का उपयोग करें। मैं वांछित आउटपुट प्राप्त कर सकते हैं। आवेदन की

public MySwitch(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 

    mTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); 
    Resources res = getResources(); 
    mTextPaint.density = res.getDisplayMetrics().density; 
    mTextPaint.setShadowLayer(0.5f, 1.0f, 1.0f, Color.BLACK); 

    TypedArray a = context.obtainStyledAttributes(attrs, 
      R.styleable.MySwitch, defStyle, 0); 

    mThumbDrawable = a.getDrawable(R.styleable.MySwitch_thumb); 
    mTrackDrawable = a.getDrawable(R.styleable.MySwitch_track); 
    mTextOn = a.getText(R.styleable.MySwitch_textOn); 
    mTextOff = a.getText(R.styleable.MySwitch_textOff); 
    mTextOutsideTrack = a.getBoolean(R.styleable.MySwitch_textOutsideTrack, false); 
    mTextOnThumb = a.getBoolean(R.styleable.MySwitch_textOnThumb, false); 
    mThumbTextPadding = a.getDimensionPixelSize(R.styleable.MySwitch_thumbTextPadding, 0); 
    mTrackTextPadding = a.getDimensionPixelSize(R.styleable.MySwitch_trackTextPadding, 0); 
    mSwitchMinWidth = a.getDimensionPixelSize(R.styleable.MySwitch_switchMinWidth, 0); 
    mSwitchMinHeight = a.getDimensionPixelSize(R.styleable.MySwitch_switchMinHeight, 0); 
    mSwitchPadding = a.getDimensionPixelSize(R.styleable.MySwitch_switchPadding, 0); 

    mTrackDrawable.getPadding(mTrackPaddingRect) ; 
    //Log.d(TAG, "mTrackPaddingRect=" + mTrackPaddingRect); 
    mThumbDrawable.getPadding(mThumbPaddingRect); 
    //Log.d(TAG, "mThumbPaddingRect=" + mTrackPaddingRect); 


    int appearance = a.getResourceId(R.styleable.MySwitch_switchTextAppearanceAttrib, 0); 
    if (appearance != 0) { 
     setSwitchTextAppearance(context, appearance); 
    } 
    a.recycle(); 

    ViewConfiguration config = ViewConfiguration.get(context); 
    mTouchSlop = config.getScaledTouchSlop(); 
    mMinFlingVelocity = config.getScaledMinimumFlingVelocity(); 

    // Refresh display with current params 
    refreshDrawableState(); 
    setChecked(isChecked()); 
    this.setClickable(true); 
    //this.setOnClickListener(clickListener); 
} 

स्क्रीनशॉट -

image

+0

की ड्रैग फीचर के लिए यह समर्थन होगा, ऐसा कुछ डिवाइसों के लिए होता है जो स्विच रंग नहीं दिखाता है (इसके ग्रे को चालू और बंद दोनों के लिए), और कुछ उपकरणों पर इसका आकार वास्तव में बड़ा होता है। कोई कामकाज? –

+0

@The अज्ञात नहीं, मैंने इसके साथ काम नहीं किया है। आईओएस विकास के साथ काम कर रहे थे। – Praveenkumar

+0

ओह ठीक है .. धन्यवाद :) –

6

आप आकार (छवियों का उपयोग किए बिना) के साथ क्या करना चाहते हैं इस प्रयास करें। वर्तमान में एक कस्टम चेकबॉक्स में यह उपयोग कर im enter image description here enter image description here

<com.myapp.views.MyCheckBox xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@android:id/checkbox" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="5dp" 
     android:button="@null" 
     android:checked="false" 
     android:clickable="false" 
     android:drawableRight="@drawable/checkbox_selector" 
     android:focusable="false" 
     android:textColor="@color/orange" /> 

checkbox_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item android:state_checked="false" 
     android:drawable="@drawable/toggle_button_off" /> <!-- pressed --> 
    <item android:state_checked="true" 
     android:drawable="@drawable/toggle_button_on" /> <!-- focused --> 
    <!-- default --> 
    <item 
     android:drawable="@drawable/toggle_button_off" /> 
</selector> 

toggle_button_off.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/toggle_background_off"></item> 
    <item 


     android:drawable="@drawable/white_toggle_icon" 
     android:left="2dp" 
     android:right="27.5dp" 
     android:bottom="1.5dp" 
     android:top="1.5dp"></item> 
</layer-list> 

toggle_button_on.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/toggle_background_on"></item> 

    <item 


     android:drawable="@drawable/white_toggle_icon" 
     android:right="2dp" 
     android:left="27.5dp" 
     android:bottom="1.5dp" 
     android:top="1.5dp"></item> 
</layer-list> 

toggle_background_off.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 


    <size android:height="32dp" android:width="60dp"/> 
    <solid android:width="1dp" android:color="#919090"/> 

    <corners android:radius="18dp" /> 

</shape> 

toggle_background_on.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 


    <size android:height="32dp" android:width="60dp"/> 
    <solid android:width="1dp" android:color="@color/orange"/> 

    <corners android:radius="18dp" /> 
</shape> 

white_toggle_icon.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval"> 
<solid android:color="#ffffff"/> 
    <stroke android:width="2dp" android:color="#fff" /> 
    <size android:width="25dp" android:height="25dp"/> 
</shape> 
+0

कृपया बताएं कि आप ** com.myapp.views.MyCheckBox ** को कैसे अनुकूलित करते हैं? –

+0

यह एक अच्छा जवाब है, लेकिन स्वाइप इस तरह से काम नहीं करता – xanexpt

+0

ग्रेट उत्तर .. धन्यवाद .. –

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