অ্যান্ড্রয়েড বোতাম নির্বাচনকারী


115

এটি এমন একটি বোতাম নির্বাচনকারী যা স্বাভাবিক যখন এটি লাল প্রদর্শিত হয়, চাপলে এটি ধূসর দেখা যায়।

আমি জিজ্ঞাসা করতে চাই যে কোডটি কীভাবে আরও সরাসরি সংশোধন করা যেতে পারে যে যখন চাপ দেওয়া হয় তখন পাঠ্যের আকার এবং রঙও পরিবর্তন হতে পারে? অনেক ধন্যবাদ!

<item android:state_pressed="true" >         
    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
        <stroke android:width="2dp" android:color="@color/black" />
        <solid android:color="@color/grey"/>
        <padding android:left="5dp" android:top="2dp" 
            android:right="5dp" android:bottom="2dp" /> 
        <corners android:radius="5dp" /> 
    </shape>    
</item>

<item>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
        <stroke android:width="2dp" android:color="@color/black" />
        <solid android:color="#FF6699"/>
        <padding android:left="5dp" android:top="2dp" 
            android:right="5dp" android:bottom="2dp" /> 
        <corners android:radius="5dp" /> 
    </shape>
</item>

উত্তর:


217

আপনি শুধু সেট করতে হবে selectorএর buttonআপনার লেআউট ফাইলের মধ্যে।

<Button
     android:id="@+id/button1"
     android:background="@drawable/selector_xml_name"
     android:layout_width="200dp"
     android:layout_height="126dp"
     android:text="Hello" />

এবং সম্পন্ন।

সম্পাদন করা

নিম্নলিখিত ডিরেক্টরিতে button_effect.xmlফাইল হয়drawable

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

    <item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_normal"></item>

</selector>

এটিতে, আপনি দেখতে পাচ্ছেন যে এখানে 3 টি আঁকতে সক্ষম রয়েছে, আপনার কেবল এই button_effectস্টাইলটি আপনার কাছে রাখা দরকার button, যেমনটি আমি উপরে লিখেছি। আপনি শুধু প্রতিস্থাপন করা প্রয়োজন selector_xml_nameসঙ্গে button_effect


আপনি কীভাবে চাপা এবং নন-চাপা স্থিতি সেট করবেন তার জন্য আরও বিস্তারিত জানাতে পারেন? (উপরের সমস্ত উপাদান যেমন বৃত্তাকার রঙ, স্ট্রোক, ইত্যাদি সহ) অনেক ধন্যবাদ!
পিয়ারম্যাক

নির্বাচককে কার্যকর করার সর্বোত্তম উপায় হ'ল এক্সএমএল ব্যবহার করে এই ব্লেজিন.আই.এন.আই.সি.আই.সি. / কে দেখুন / এইচটিএমএল এবং আমি এর কাজ অনুসারে প্রয়োগ করেছি
ভূষণ শিরশত

হাই, আমি জানি আপনি এই পোস্টটি লিখেছেন কিছুক্ষণ হয়েছে তবে সম্ভবত আপনি বুঝতে পারবেন আমি কী অনুপস্থিত। আমি আপনার কোডটি ব্যবহার করেছি এবং আমার বোতামটি সর্বদা সবুজ হয়ে গেছে তবে চাপযুক্ত = সত্য এবং নির্বাচিত = সত্যের জন্য এটি ধূসরতে আঁকতে পরিবর্তনযোগ্য তবে অন্যান্য ক্রিয়াকলাপের বোতামটি খোলার আগে সিকোডের ডিফল্ট অ্যান্ড্রয়েড স্টাইল রয়েছে। কোন ধারণা আমি কি রাষ্ট্র মিস করছি?
ভলফক

27

রাষ্ট্রীয় তালিকা আঁকতে সক্ষম হয়ে আপনি পাঠ্যের আকার পরিবর্তন করতে পারবেন না । পাঠ্যের রঙ এবং পাঠ্যের আকার পরিবর্তন করতে এটি করুন:

লেখার রঙ

পাঠ্যের রঙ পরিবর্তন করতে, আপনি রঙের রাজ্যের তালিকা সংস্থান তৈরি করতে পারেন । এটি res/color/ডিরেক্টরিতে অবস্থিত একটি পৃথক সংস্থান হবে । লেআউট এক্সএমএল এ আপনাকে android:textColorবৈশিষ্ট্যের মান হিসাবে সেট করতে হবে । রঙ নির্বাচক এর পরে এই জাতীয় কিছু থাকবে:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="@color/text_pressed" />
    <item android:color="@color/text_normal" />
</selector>

অক্ষরের আকার

আপনি কেবল সংস্থান দিয়ে পাঠ্যের আকার পরিবর্তন করতে পারবেন না। কোনও "মাত্রা নির্বাচক" নেই। আপনি কোড এ এটি করতে হবে। এবং কোন সরল সমাধান নেই।

সম্ভবত সবচেয়ে সহজ সমাধানটি ততক্ষণে View.onTouchListener()আপ এবং ডাউন ইভেন্টগুলি ব্যবহার এবং পরিচালনা করতে পারে । এর মতো কিছু ব্যবহার করুন:

view.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                // change text size to the "pressed value"
                return true;
            case MotionEvent.ACTION_UP:
                // change text size to the "normal value"
                return true;
            default:
                return false;
            }
        }
});

একটি ভিন্ন সমাধান হতে পারে ভিউটি প্রসারিত করা এবং setPressed(Boolean)পদ্ধতিটি ওভাররাইড করা । পদ্ধতিটি অভ্যন্তরীণভাবে ডাকা হয় যখন চাপযুক্ত অবস্থার পরিবর্তন ঘটে। তারপরে মেথড কলে পাঠ্যটির আকার পরিবর্তন করুন (সুপারকে কল করতে ভুলবেন না)।


14

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

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable="@drawable/unselected" android:state_pressed="true" />
   <item android:drawable="@drawable/selected" />
</selector>

অঙ্কনযোগ্য ফোল্ডারে নির্বাচিত। XML আকার তৈরি করুন

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="90dp">
   <solid android:color="@color/selected"/>
   <padding />
   <stroke android:color="#000" android:width="1dp"/>
   <corners android:bottomRightRadius="15dp" android:bottomLeftRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp"/>
</shape>

অঙ্কনযোগ্য ফোল্ডারে অনির্বাচিত x xML আকার তৈরি করুন

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="90dp">
   <solid android:color="@color/unselected"/>
   <padding />
   <stroke android:color="#000" android:width="1dp"/>
   <corners android:bottomRightRadius="15dp" android:bottomLeftRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp"/>
</shape>

মান ফোল্ডারের color.xML- এ নির্বাচিত / নির্বাচিত অবস্থায় নিচের রঙগুলি যুক্ত করুন

<color name="selected">#a8cf45</color>
<color name="unselected">#ff8cae3b</color>

আপনি এখান থেকে সম্পূর্ণ সমাধান পরীক্ষা করতে পারেন


2

নির্বাচক বাস্তবায়নের সর্বোত্তম উপায় হ'ল এক্সএমএল ব্যবহারের পরিবর্তে প্রগ্রেটিক উপায়টি ব্যবহার না করে এক্সএমএল ব্যবহার করা আরও সহজ।

    <?xml version="1.0" encoding="utf-8"?>    
<selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/button_bg_selected" android:state_selected="true"></item>
        <item android:drawable="@drawable/button_bg_pressed" android:state_pressed="true"></item>
        <item android:drawable="@drawable/button_bg_normal"></item>

    </selector>

আরও তথ্যের জন্য আমি এই লিঙ্কটি ব্যবহার করে বাস্তবায়ন করেছি http://www.blazin.in66/03/how-to-use-setectors-for-botton.html


2

লেআউট .xML ফাইলে

<Button
 android:id="@+id/button1"
 android:background="@drawable/btn_selector"
 android:layout_width="100dp"
 android:layout_height="50dp"
 android:text="press" />

btn_selector.xml

<?xml version="1.0" encoding="utf-8"?>

 <item android:drawable="@drawable/btn_bg_selected" android:state_selected="true"></item>
<item android:drawable="@drawable/btn_bg_pressed" android:state_pressed="true"></item>
<item android:drawable="@drawable/btn_bg_normal"></item>


1

আপনি এই কোডটি ব্যবহার করতে পারেন:

<Button
android:id="@+id/img_sublist_carat"
android:layout_width="70dp"
android:layout_height="68dp"
android:layout_centerVertical="true"
android:layout_marginLeft="625dp"
android:contentDescription=""
android:background="@drawable/img_sublist_carat_selector"
android:visibility="visible" />

(নির্বাচক ফাইল) img_sublist_carat_selector.xML:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_focused="true" 
       android:state_pressed="true"        
       android:drawable="@drawable/img_sublist_carat_highlight" />
 <item android:state_pressed="true" 
       android:drawable="@drawable/img_sublist_carat_highlight" />
 <item android:drawable="@drawable/img_sublist_carat_normal" />
</selector>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.