অ্যান্ড্রয়েড কাস্টমাইজড বোতাম; পাঠ্যের রঙ পরিবর্তন করা হচ্ছে


251

আমি একটি বোতাম তৈরি করেছি যা বিভিন্ন রাজ্যে পটভূমি আঁকতে সক্ষম হয়, এইভাবে:

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_pressed="true" android:drawable="@drawable/btn_location_pressed" /> <!-- pressed -->
 <item android:state_focused="true" android:drawable="@drawable/btn_location_pressed"/> <!-- focused -->
 <item android:drawable="@drawable/btn_location"/> <!-- default -->

এখানে সমস্যাটি হ'ল আমি টেক্সট কালারটিও পরিবর্তন করার চেষ্টা করছিলাম যেমন আমি আঁকার সাথে বোধ করি তবে আমি সক্ষম হচ্ছি না। আমি ইতিমধ্যে অ্যান্ড্রয়েড: টেক্সট কালার এবং অ্যান্ড্রয়েড চেষ্টা করেছি: রঙ তবে প্রথমটি কাজ করে না যখন সেকেন্ডে আমার ব্যাকগ্রাউন্ড পরিবর্তন হয়।

পরবর্তী কোডটি আমার বিন্যাসের অংশ is পাঠ্যের রঙ সম্পর্কিত, এটি কেবলমাত্র সাধারণ রাষ্ট্রের পাঠ্যের রঙের জন্য কাজ করে, এভাবে চাপলে সাদাটিকে পরিবর্তন করে না

<Button android:id="@+id/location_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingTop="5dp"
        android:background="@drawable/location"          
        android:textSize="15sp"
        android:textColor="@color/location_color"
        android:textColorHighlight="#FFFFFF"
   />

কেউ কি কোনও ক্লু পেয়েছে?

উত্তর:


579

পটভূমির জন্য যেমন করেছেন ঠিক তেমনই আপনার বোতামের জন্য একটি রাষ্ট্রীয় রঙ তৈরি করুন:

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

    <!-- Focused and not pressed -->
    <item android:state_focused="true" 
          android:state_pressed="false" 
          android:color="#ffffff" />

    <!-- Focused and pressed -->
    <item android:state_focused="true" 
          android:state_pressed="true" 
          android:color="#000000" />

    <!-- Unfocused and pressed -->
    <item android:state_focused="false" 
          android:state_pressed="true" 
          android:color="#000000" />

    <!-- Default color -->
    <item android:color="#ffffff" />

</selector>

এক্স / ড্রেজেবল ফোল্ডারে যেমন ফাইল / ড্রেজেবল / বোতাম_টেক্সট_ক্লোর.এক্সএমএল xML রাখুন। তারপরে অঙ্কনযোগ্যটিকে কেবল পাঠ্যের রঙ হিসাবে সেট করুন:

android:textColor="@drawable/button_text_color"

15
নোট করুন (আমার পক্ষে কমপক্ষে) একটি বাগ রয়েছে যেখানে আপনার উত্তর হিসাবে "স্বাভাবিক" অবস্থা (<আইটেম অ্যান্ড্রয়েড: রঙ = "# ffffff" />) অবশ্যই ফাইলের শেষে রাখা উচিত। ফাইলের শীর্ষে স্বাভাবিক অবস্থা স্থাপন (অন্যান্য রাজ্যের উপরে) নির্বাচককে কাজ করা থেকে বিরত রাখে।
ক্রিস ব্লান্ট

58
এটি কোনও বাগ নয়। রাষ্ট্র নির্বাচনের কাজটি করার উপায় এটিই। এটি সেরা ম্যাচ নয় , পরিবর্তে প্রথম যেটি ফিট করে তা এটি তৈরি করে।
superjos

আপনি কি পূর্ণসংখ্যার মান দিয়ে এটি করবেন? আমি টেক্সট প্যাডিংয়ের সাথে অনুরূপ কিছু করার চেষ্টা করছি।
এফিরিক্স

এটির চেষ্টা করে কিছুটা সময় ব্যয় করল, তারপরে আবিষ্কার করেছিলাম যে আমি এখনও এটি পাঠ্য রঙের সম্পত্তির পরিবর্তে পটভূমির সম্পত্তিতে সেট করেছিলাম। পাঠ্য রঙ দেখতে একটি অভ্যাসযোগ্য!
ওদেম

20
রঙ নির্বাচক res/colorফোল্ডারে অবস্থিত থাকলে এটি বিটার । এবং কল করার সময়, ব্যবহার করুন:android:textColor="@color/button_text_color"
জাস্টিন

16

এটি করার আরেকটি উপায় আপনার ক্লাসে রয়েছে:

import android.graphics.Color; // add to top of class  

Button btn = (Button)findViewById(R.id.btn);

// set button text colour to be blue
btn.setTextColor(Color.parseColor("blue"));

// set button text colour to be red
btn.setTextColor(Color.parseColor("#FF0000"));

// set button text color to be a color from your resources (could be strings.xml)
btn.setTextColor(getResources().getColor(R.color.yourColor));

// set button background colour to be green
btn.setBackgroundColor(Color.GREEN);

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

1
এটি মূল প্রশ্নের উত্তর দেয় না। প্রশ্নটি কীভাবে আপনি রাজ্য ভিত্তিক অঙ্কনযোগ্যকে সেট করতে পারেন ঠিক সেইভাবে কোনও পাঠ্য দৃশ্যে রাজ্য ভিত্তিক রঙগুলি কীভাবে সংজ্ঞায়িত করা যায় সে সম্পর্কে is
আলকেমিস্ট

4

ঠিক আছে খুব সাধারণ প্রথম যান 1 টি পুনঃ-মান এবং ওপেন color.xML 2 কপি 1 সংজ্ঞায়িত পাঠ্য তাদের উদাহরণ হিসাবে # FF4081 এবং পরিবর্তন নাম হিসাবে আমি সাদা এবং উদাহরণস্বরূপ এর মান পরিবর্তন করার জন্য পরিবর্তন #FFFFFF সাদা মান এই মত

<color name="White">#FFFFFF</color>

তারপরে আপনার বোতামের ভিতরে এই লাইনটি যুক্ত করুন

 b3.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.White));

ঠিক আছে বি 3 আমার বোতামের নাম তাই আপনার বোতামের নাম পরিবর্তন করে অন্য সমস্ত একই হবে আপনি সাদা রঙ ব্যবহার করেন যদি আপনি বিভিন্ন রঙ পরিবর্তন করেন তবে আপনার রঙের নামে সাদা পরিবর্তন করুন তবে প্রথমে আপনি সেই রঙটি রঙগুলিতে সংজ্ঞায়িত করবেন। xML এর মতো আমি পন্ট 2 এ ব্যাখ্যা করেছি


1

বোতামের পাঠ্যের রঙ পরিবর্তন করা

কারণ এই পদ্ধতিটি এখন অবমূল্যায়ন করা হয়েছে

button.setTextColor(getResources().getColor(R.color.your_color));

আমি নিম্নলিখিত ব্যবহার:

button.setTextColor(ContextCompat.getColor(mContext, R.color.your_color));

0

getColorStateListএই মত ব্যবহার করুন

setTextColor(resources.getColorStateList(R.color.button_states_color))

পরিবর্তে getColor

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