বিভিন্ন স্থানে দুটি চিত্র ব্যবহার করে টগল বোতাম


101

আমাকে অন / অফ স্টেটের পরিবর্তে দুটি চিত্র ব্যবহার করে একটি টগল বোতাম তৈরি করতে হবে।

অফ স্টেটে আমি একটি ব্যাকগ্রাউন্ড ইমেজ সেট করি background তবে আমি ব্যাকগ্রাউন্ড ইমেজ ব্যবহার করার সময় অফ টেক্সটটি সরানো যায় না।

এবং টগল বোতামটি ক্লিক করে আমি অন স্টেটে আর একটি চিত্র সেট করতে পারি না :( আমি অ্যান্ড্রয়েডে নতুন।


উত্তর:


219

এটা কর:

<ToggleButton 
        android:id="@+id/toggle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/check"   <!--check.xml-->
        android:layout_margin="10dp"
        android:textOn=""
        android:textOff=""
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:layout_centerVertical="true"/>

অঙ্কনযোগ্য ফোল্ডারে চেক। এক্সএমএল তৈরি করুন

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item android:drawable="@drawable/selected_image"
          android:state_checked="true" />
    <!-- When not selected, use white-->
    <item android:drawable="@drawable/unselected_image"
        android:state_checked="false"/>

 </selector>

1
চেক.এক্সএমএলে দুটি চিত্র (নির্বাচিত / নির্বাচিত) যুক্ত করুন যা টগল বোতামের দুটি পৃথক রাজ্য হিসাবে কাজ করবে
আকাশজি

19
আপনার পটভূমি প্রসারিত হওয়ার ক্ষেত্রে সমস্যা আছে?
মাইক বেভজ

2
অ্যান্ড্রয়েড: টেক্সটঅন = "" অ্যান্ড্রয়েড: টেক্সটঅফ = "" আমি যা খুঁজছিলাম তা ছিল
png

9
যেহেতু দেখে মনে হচ্ছে অন্যদেরও এই সমস্যা ছিল তাই আমি আমার সমাধানটি এখানে যুক্ত করছি। যোগ করুন android:background="@null"এবং android:drawableRight="@drawable/check"। সাধারণত আমি টগল বোতামগুলি সঠিক-ন্যায়বিচারযুক্ত খুঁজে পেয়েছি। আপনার যদি এটি বাম-ন্যায়সঙ্গত প্রয়োজন, ব্যবহার করুনandroid:drawableLeft
প্যাট্রিক

1
@ পেট্রিক তবে আপনি কী চান যদি এটি কেন্দ্রের সাথে যুক্ত হয়? ... সমস্ত ডিভাইসে? সুতরাং আসুন মার্জিন এবং প্যাডিং মধ্যে না।
মার্টিন এরলিক

47

আকাশজির সমাধান আমার পক্ষে কাজ করে না। আমি যখন চেক। এক্সএমএল ব্যাকগ্রাউন্ডে সেট আপ করি তখন এটি কেবল উল্লম্ব দিকের দিকে প্রসারিত হয়। এই সমস্যাটি সমাধান করার জন্য আপনার "Android: বোতাম" বৈশিষ্ট্যে চেক.এক্সএমএল সেট আপ করা উচিত:

<ToggleButton 
    android:id="@+id/toggle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:button="@drawable/check"   //check.xml
    android:background="@null"/>

check.xml:

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item android:drawable="@drawable/selected_image"
          android:state_checked="true" />
    <!-- When not selected, use white-->
    <item android:drawable="@drawable/unselected_image"
          android:state_checked="false"/>
    </selector>

10
টগলবটনের পিতা বা মাতা যৌগিক বাটন রয়েছে। এবং
কমপাউন্ডবুটনের

3
এটি সঠিক উত্তর হওয়া উচিত। গৃহীত উত্তরগুলি প্রসারিত অঙ্কনযোগ্যগুলিতে ফল দেয়।
বামেরজা

ছবিগুলির স্বচ্ছতা থাকলে, android:background="@android:color/transparent"ব্যবহার করা যায়
পাভেল

@ বেমেরজা, এটি কোনও ক্ষেত্রেই প্রযোজ্য না। .Svg দিয়ে চেষ্টা করে দেখলে আপনি প্রসারিত পটভূমি পাবেন।
ফরিদ

2

আপনি এরকম কিছু চেষ্টা করতে পারেন। এখানে চিত্রের বোতামের ক্লিকে আমি চিত্র ভিউ টগল করি।

holder.imgitem.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            if(!onclick){
            mSparseBooleanArray.put((Integer) view.getTag(), true);
            holder.imgoverlay.setImageResource(R.drawable.ipad_768x1024_editmode_delete_overlay_com);
            onclick=true;}
            else if(onclick)
            {
                 mSparseBooleanArray.put((Integer) view.getTag(), false);
                  holder.imgoverlay.setImageResource(R.drawable.ipad_768x1024_editmode_selection_com);

            onclick=false;
            }
        }
    });
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.