অ্যান্ড্রয়েড: নির্বাচিত রঙে অক্ষম বোতামের রঙটি প্রদর্শিত হচ্ছে না?


102

আমি একটি নির্বাচক দিয়ে একটি বোতাম তৈরি করার চেষ্টা করছি আমার বোতামের নিম্নলিখিত অবস্থা থাকতে পারে:

  • সক্ষম / অক্ষম
  • চাপা / না চাপানো

উপরে বর্ণিত রাজ্যগুলির মতে। আমাকে বোতামটির কারসাজি করতে হবে:

  • লেখার রঙ
  • পটভূমি চিত্র

বোতামটি আমার অক্ষম হওয়া শুরু করে তাই এটিতে অক্ষম পাঠ্য রঙ এবং অক্ষম বোতামের পটভূমি থাকা উচিত। তবে আমি ডিফল্ট পাঠ্য রঙ (স্টাইলে নির্দিষ্ট) এবং কোনও ব্যাকগ্রাউন্ড চিত্র দেখতে পাচ্ছি!

এখানে আমার নির্বাচক বাটন_সलेक्टার.এক্সএমএল

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

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="false"
        android:state_enabled="false"
        android:textColor="#9D9FA2"
        android:drawable="@drawable/button" />    

    <item android:state_pressed="true"
        android:state_enabled="true"
        android:drawable="@drawable/button_pressed"/>

    <item android:state_pressed="true"
        android:state_enabled="false"
        android:textColor="#9D9FA2"
        android:drawable="@drawable/button"/>

    <item android:state_pressed="false"
        android:state_enabled="true"
        android:drawable="@drawable/button"/>    

</selector>

এবং এখানে আমার লেআউট.এক্সএমএলে আমার বোতামের ঘোষণা is

    <Button android:id="@+id/reserve_button"
        android:text="@string/reserve_button"
        android:layout_width="120dp"
        android:layout_height="40dp"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="20dp"
        android:paddingRight="15dp"
        android:layout_gravity="left"
        style="@style/buttonStyle"
        android:background="@drawable/button_selector" />

এবং অবশেষে এটি আমার স্টাইল (যেখানে আমার ডিফল্ট পাঠ্য রঙ সেট করা আছে)

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

 <resources>

     <style name="buttonStyle">
      <item name="android:textStyle">bold</item>
      <item name="android:textColor">#282780</item>
      <item name="android:textSize">18sp</item>
     </style>

</resources>

সাহায্য করুন!

উত্তর:


253

ColorStateListবিভিন্ন রাজ্য চিহ্নিত করে আপনাকে পাঠ্য রঙের জন্য একটি তৈরি করতে হবে ।

নিম্নলিখিতগুলি করুন:

  1. res\colorনামের মতো অন্য একটি এক্সএমএল ফাইল তৈরি করুন text_color.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <!-- disabled state -->
      <item android:state_enabled="false" android:color="#9D9FA2" /> 
      <item android:color="#000"/>
    </selector>
    
  2. আপনার মধ্যে style.xml, text_color.xmlনিম্নলিখিত হিসাবে ফাইলের একটি রেফারেন্স রাখুন :

    <style name="buttonStyle" parent="@android:style/Widget.Button">
      <item name="android:textStyle">bold</item>
      <item name="android:textColor">@color/text_color</item>
      <item name="android:textSize">18sp</item>
    </style>
    

এটি আপনার সমস্যা সমাধান করা উচিত।


4
আপনি যদি @ অঙ্কনযোগ্য / পাঠ্য_ক্লোর দ্বারা উল্লেখ করেন তবে আপনার পাঠ্য_ক্লোল.এক্সএমএল ফাইলটি / রেজো / ড্রইবেলে (/ রেস / রঙের পরিবর্তে) সংরক্ষণ করার দরকার নেই?
এরওয়ান

4
@ ইরান সংশোধন করার জন্য ধন্যবাদ। প্রকৃতপক্ষে যদি আপনি সম্পাদনার ইতিহাস দেখেন, আমি এটিকে অঙ্কনীয় ফোল্ডার হিসাবে পোস্ট করেছি এবং কিছু সুন্দর লোক এটি রঙিন করে সম্পাদনা করেছে তবে @colorবাটটি স্টাইলে এটি আপডেট করতে ভুলে গিয়েছেন। এখন এটি আপডেট হয়েছে।
আদিল সোমো

6
text_color.xmlআমি এটি drawableফোল্ডারে রাখি না হলে (আমার পক্ষে কমপক্ষে) সংকলন করে না , যা প্রয়োজন হিসাবে এটি উল্লেখ করা দরকার@drawable/text_color
আল লেলোপাথ

@ মিকি হ্যাঁ, আপনি সঠিক, সুতরাং আপনি সম্পাদনার ইতিহাসটি দেখলে প্রাথমিকভাবে এটি অঙ্কনীয় হিসাবে প্রস্তাব দেওয়া হয়েছিল, তবে কেউ এটিকে রঙিন ফোল্ডারে আপডেট করেছেন, আমি এখন এটি সংশোধন করেছি।
আদিল সোমো

4
@ D3LIC1OU5 আপনি মন্তব্যগুলি দেখুন, উভয় উপায় কাজ করতে বলা হয়েছে। আমি স্রেফ ডকুমেন্টেশনের সাথে পরামর্শ করেছি এবং রঙ রাজ্য তালিকার সংস্থানcolor জন্য সঠিক ফোল্ডার আপনার সম্পাদনাটি স্বাগত।
আদিল সোমো

7

1. / রিস / ফোল্ডারে এবং রঙ ফোল্ডারে একটি রঙ ফোল্ডার তৈরি করুন এক্সএমএলে তৈরি করুন:

পাঠ্য_রঙা_নির্বাচক। xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- disabled state --> 
<item android:state_enabled="false" android:color="#776678" /> 
 <item android:color="#ffffff"/>
</selector>

2.এখন একটি এক্সএমএল লেআউট তৈরি করুন: -

 <Button

        android:id="@+id/button_search"

        android:layout_width="652dp"

        android:layout_height="48dp"

        android:layout_alignParentLeft="true"

        android:layout_alignParentTop="true"

        android:layout_marginTop="18dp"

        android:background="@android:color/transparent"

        android:text="Hello Bhaskar"

        android:textColor="@color/text_color_selector"/>  

4

সর্বাধিক সহজ সমাধানটি হ'ল আমি এখানে যেমন দেখেছি ততক্ষণ এবং বোতামের ব্যাকগ্রাউন্ডে রঙিন ফিল্টার সেট করা

আপনি নিম্নলিখিত হিসাবে করতে পারেন:

if ('need to set button disable')
    button.getBackground().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);
else
    button.getBackground().setColorFilter(null);

আশা করি আমি কাউকে সাহায্য করেছি ...


ডায়নামিকভাবে এটি করার একটি দুর্দান্ত উপায়, যখন আপনার কাছে আগে থেকে বোতামের পটভূমি চিত্র নেই। তবে এটি পাঠ্যের রঙের যত্ন নেয় না।
ইরান গোল্ডিন

-1
<Button android:id="@+id/reserve_button"
        android:text="@string/reserve_button"
        android:layout_width="120dp"
        android:layout_height="40dp"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="20dp"
        android:paddingRight="15dp"
        android:layout_gravity="left"
        style="@style/buttonStyle"
        android:background="@drawable/button_selector" />

আপনার লেআউট এক্সএমএলে আপনার বোতামটি ডাইবলিং দেখতে পাচ্ছি না। এটি আপনার বোতামের বিন্যাসে যুক্ত করুন।

android:enabled="false"

সুতরাং আপনার বাটন লেআউটটি হবে,

<Button android:id="@+id/reserve_button"
        android:text="@string/reserve_button"
        android:layout_width="120dp"
        android:layout_height="40dp"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="20dp"
        android:enabled="false"
        android:paddingRight="15dp"
        android:layout_gravity="left"
        style="@style/buttonStyle"
        android:background="@drawable/button_selector" />

@ আকিফ হামিদ আমি সেই প্রোগ্রামটিই বাটনটি করি। আমার অনক্রিট () পদ্ধতিতে সক্ষম (মিথ্যা)
নুরান এইচ

-2

আপনি একটি রঙের তালিকা তৈরি করতে পারেন

ফাইলের অবস্থান:

res/color/filename.xml

ফাইলের নামটি রিসোর্স আইডি হিসাবে ব্যবহৃত হবে।

সংস্থান রেফারেন্স:

জাভাতে: R.color.filename

এক্সএমএলে: @[package:]color/filename

বাক্য গঠন:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:color="hex_color"
        android:state_pressed=["true" | "false"]
        android:state_focused=["true" | "false"]
        android:state_selected=["true" | "false"]
        android:state_checkable=["true" | "false"]
        android:state_checked=["true" | "false"]
        android:state_enabled=["true" | "false"]
        android:state_window_focused=["true" | "false"] />
</selector>

উদাহরণ:

এক্সএমএল ফাইল এতে সংরক্ষণ করা হয়েছে res/color/button_text.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="#ffff0000"/> <!-- pressed -->
    <item android:state_focused="true"
          android:color="#ff0000ff"/> <!-- focused -->
    <item android:color="#ff000000"/> <!-- default -->
</selector>

এই বিন্যাসটি এক্সএমএল একটি ভিউতে রঙের তালিকা প্রয়োগ করবে:

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/button_text"
    android:textColor="@color/button_text" />

তথ্যসূত্র : রঙের তালিকা রেফারেন্স

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