আমি আমার একটি প্রকল্পে রেডিওবটন এর বৃত্তের রঙ পরিবর্তন করতে চাই, কোন সম্পত্তি সেট করতে হবে তা বুঝতে পারি না। আমার যে পটভূমি রঙটি রয়েছে তা কালো তাই এটি অদৃশ্য হয়ে যায়। আমি বৃত্তের রঙটি সাদা করতে চাই।
আমি আমার একটি প্রকল্পে রেডিওবটন এর বৃত্তের রঙ পরিবর্তন করতে চাই, কোন সম্পত্তি সেট করতে হবে তা বুঝতে পারি না। আমার যে পটভূমি রঙটি রয়েছে তা কালো তাই এটি অদৃশ্য হয়ে যায়। আমি বৃত্তের রঙটি সাদা করতে চাই।
উত্তর:
আরও সহজ, কেবল বোতামটিটের রঙটি সেট করুন: (কেবলমাত্র এপিআই স্তর 21 বা তত উপরে কাজ করে)
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radio"
android:checked="true"
android:buttonTint="@color/your_color"/>
আপনার মানগুলিতে / color.xML এ এক্ষেত্রে আপনার রঙটি একটি লালচে বর্ণযুক্ত করে:
<color name="your_color">#e75748</color>
ফলাফল:
আপনি যদি কোড দ্বারা এটি করতে চান (এপিআই 21 এবং উপরেও):
if(Build.VERSION.SDK_INT>=21)
{
ColorStateList colorStateList = new ColorStateList(
new int[][]{
new int[]{-android.R.attr.state_enabled}, //disabled
new int[]{android.R.attr.state_enabled} //enabled
},
new int[] {
Color.BLACK //disabled
,Color.BLUE //enabled
}
);
radio.setButtonTintList(colorStateList);//set the color tint list
radio.invalidate(); //could not be necessary
}
control.getDrawable().setColorFilter(getResources().getColor(color), PorterDuff.Mode.SRC_IN);
কোথায় ব্যবহার করা উচিত control
এবং color
আপনি যে রঙটি চান তার পূর্ণসংখ্যা মান যেমনR.color.red
android.R.attr.state_checked
এবং রঙ যুক্ত করতে পারেন।
আপডেট: 1. পরিবর্তে এটি ব্যবহার করুন
<android.support.v7.widget.AppCompatRadioButton
android:id="@+id/rbtn_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:buttonTint="@color/primary" />
2. তারপরে এই লাইনটি প্যারেন্ট লেআউটে অথবা Alt + Enter
অ্যান্ড্রয়েড স্টুডিওতে স্বয়ংক্রিয়ভাবে যুক্ত করুন
xmlns:app="http://schemas.android.com/apk/res-auto"
ন্যূনতম উদাহরণটির মতো দেখতে হবে:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.AppCompatRadioButton
android:id="@+id/rbtn_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:buttonTint="@color/primary" />
</LinearLayout>
৩. আপনার প্রোগ্রামে এই জাতীয় কল করা উচিত।
AppCompatRadioButton radioButton = (AppCompatRadioButton) view.findViewById(R.id.rbtn_test);
মূলত, এই ধরণের প্যাটার্নটি সমস্ত অ্যাপকম্প্যাক্ট ধরণের জন্য যেমন অ্যাপকম্প্যাটচেকবক্স, অ্যাপকম্প্যাটবটন এবং এর জন্য প্রয়োগ করা যেতে পারে।
পুরানো উত্তর:
অ্যান্ড্রয়েড API 21 এর নীচে সমর্থন করার জন্য, আপনি AppCompatRadioButton ব্যবহার করতে পারেন । তারপরে setSupportButtonTintList
রঙ পরিবর্তন করতে পদ্ধতিটি ব্যবহার করুন । এটি একটি রেডিও বোতাম তৈরি করার জন্য আমার কোড স্নিপেট।
AppCompatRadioButton rb;
rb = new AppCompatRadioButton(mContext);
ColorStateList colorStateList = new ColorStateList(
new int[][]{
new int[]{-android.R.attr.state_checked},
new int[]{android.R.attr.state_checked}
},
new int[]{
Color.DKGRAY
, Color.rgb (242,81,112),
}
);
rb.setSupportButtonTintList(colorStateList);
এপিআই 19-এ পরীক্ষিত ফলাফল:
আরও বিশদ জন্য অ্যান্ড্রয়েড রেফারেন্স লিঙ্ক দেখুন।
<android.support.v7.widget.AppCompatRadioButton ../>
setSupportButtonTintList
আপনি ব্যবহার করার উদ্দেশ্যে নয় এমন একটি ব্যক্তিগত পদ্ধতি। অ্যান্ড্রয়েডের কয়েকটি সংস্করণে রেডিও বোতামগুলি অদ্ভুত আচরণ করবে। পরিবর্তে, ব্যবহার করুন CompoundButtonCompat.setButtonTintList(rb, colorStateList)
।
<android.support.v7.widget.AppCompatRadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:buttonTint="@color/Color" />
API- এর উপর কাজ করা ভাল পোস্টে 21. যত প্রাক 21
আপনার styles.xml
রাখুন::
<!-- custom style -->
<style name="radionbutton"
parent="Base.Widget.AppCompat.CompoundButton.RadioButton">
<item name="android:button">@drawable/radiobutton_drawable</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
আপনার radio button
এক্সএমএলে দেখতে দেখতে হওয়া উচিত:
<RadioButton
android:layout_width="wrap_content"
style="@style/radionbutton"
android:checked="false"
android:layout_height="wrap_content"
/>
এখন আপনাকে যা করতে হবে তা হ'ল radiobutton_drawable.xml
আপনার মধ্যে একটি তৈরি করা drawable folder
। এটিতে আপনার যা লাগানো দরকার তা এখানে:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/radio_unchecked" android:state_checked="false" android:state_focused="true"/>
<item android:drawable="@drawable/radio_unchecked" android:state_checked="false" android:state_focused="false"/>
<item android:drawable="@drawable/radio_checked" android:state_checked="true" android:state_focused="true"/>
<item android:drawable="@drawable/radio_checked" android:state_checked="true" android:state_focused="false"/>
</selector>
আপনার radio_unchecked.xml
:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke android:width="1dp" android:color="@color/colorAccent"/>
<size android:width="30dp" android:height="30dp"/>
</shape>
আপনার radio_checked.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<stroke android:width="1dp" android:color="@color/colorAccent"/>
<size android:width="30dp" android:height="30dp"/>
</shape>
</item>
<item android:top="5dp" android:bottom="5dp" android:left="5dp" android:right="5dp">
<shape android:shape="oval">
<solid android:width="1dp" android:color="@color/colorAccent"/>
<size android:width="10dp" android:height="10dp"/>
</shape>
</item>
</layer-list>
কেবল @color/colorAccent
আপনার পছন্দসই রঙের সাথে প্রতিস্থাপন করুন ।
আপনাকে এই কোডটি ব্যবহার করতে হবে:
<android.support.v7.widget.AppCompatRadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/black"
android:text="Radiobutton1"
app:buttonTint="@color/black" />
ব্যবহার app:buttonTint
পরিবর্তে android:buttonTint
এবং android.support.v7.widget.AppCompatRadioButton
পরিবর্তে Radiobutton
!
আপনার স্টাইলস.এমএমএল ফাইলটিতে কাস্টম শৈলীর ঘোষণা দিন।
<style name="MyRadioButton" parent="Theme.AppCompat.Light">
<item name="colorControlNormal">@color/indigo</item>
<item name="colorControlActivated">@color/pink</item>
</style>
এই স্টাইলটি আপনার অ্যান্ড্রয়েড: থিম বৈশিষ্ট্যের মাধ্যমে আপনার রেডিওবটনগুলিতে প্রয়োগ করুন।
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="Radio Button"
android:theme="@style/MyRadioButton"/>
কেবলমাত্র যদি আপনার ক্রিয়াকলাপ প্রসারিত হয় AppCompatActivity
<item name="android:colorControlActivated">@color/pink</item>
এটি আমার জন্য কাজ করার জন্য আমাকে ব্যবহার করতে হয়েছিল। আমি এখনও নিশ্চিত না কেন। অন্যথায়, এটি একটি ভাল উত্তর।
21 এর অধীনে
কাস্টম স্টাইল রেডিওবটন স্টাইল.এক্সএমএল তৈরি করুন
<style name="RadioButton" parent="Theme.AppCompat.Light">
<item name="colorAccent">@color/green</item>
<item name="android:textColorSecondary">@color/mediumGray</item>
<item name="colorControlNormal">@color/red</item>
</style>
বিন্যাসে থিম ব্যবহার করুন:
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/RadioButton" />
21 এবং আরও অনেকের জন্য
স্রেফ বাটনটিন্ট ব্যবহার করুন
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/green" />
প্রশ্নটি পুরানো তবে আমি মনে করি আমার উত্তরটি মানুষকে সাহায্য করবে। আপনি এক্সএমএল স্টাইল ব্যবহার করে রেডিও বোতামের চেক না করা এবং চেক করা রাষ্ট্রের রঙ পরিবর্তন করতে পারেন।
<RadioButton
android:id="@+id/rb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/RadioButtonStyle" />
স্টাইল.এক্সএমএল এ
<style name="RadioButtonStyle" parent="Theme.AppCompat.Light">
<item name="colorAccent">@android:color/white</item>
<item name="android:textColorSecondary">@android:color/white</item>
</style>
আপনি এই শৈলীতে পছন্দসই রং সেট করতে পারেন।
buttonTint
সম্পত্তি সেট করুন । উদাহরণস্বরূপ android:buttonTint="#99FF33"
,।
আমি এটিকে সংক্ষিপ্তভাবে তৈরি করেছি (এপিআই প্রাক 21 তে 21 এর পাশাপাশি পোস্ট করা)
এক্সএমএলে আপনার রেডিও বোতামটি দেখতে এমন হওয়া উচিত
<RadioButton android:id="@+id/radioid"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:button="@drawable/radiodraw" />
রেডিওড্রেও.এক্সএমএল এ
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" >
<shape android:shape="oval" >
<stroke android:width="1dp" android:color="#000"/>
<size android:width="30dp" android:height="30dp"/>
<solid android:color="@android:color/transparent"/>
</shape>
</item>
<item android:state_checked="true">
<layer-list>
<item>
<shape android:shape="oval">
<stroke android:width="1dp" android:color="#000"/>
<size android:width="30dp" android:height="30dp"/>
<solid android:color="@android:color/transparent"/>
</shape>
</item>
<item android:top="5dp" android:bottom="5dp" android:left="5dp" android:right="5dp">
<shape android:shape="oval">
<solid android:width="1dp" android:color="#000"/>
<size android:width="10dp" android:height="10dp"/>
</shape>
</item>
</layer-list>
</item>
</selector>
যাচাই না করা অবস্থাটি আঁকার জন্য স্বচ্ছ রঙ যুক্ত করতে হবে; অন্যথায় এটি শক্ত কালো ডিম্বাকৃতি আঁকবে।
কখনও কখনও আপনার কেবল রঙ নিয়ন্ত্রণকে এইভাবে ওভাররাইড করতে হবে :
<style name="RadioButtonStyle" parent="AppTheme">
<item name="colorControlNormal">@color/pink</item>
<item name="colorAccent">@color/colorPrimary</item>
<item name="android:textColorSecondary">@color/black</item>
</style>
এবং আপনি এর মতো একটি বোতাম পাবেন:
colorControlNarmal চেক না করা অবস্থায় এবং কালারঅ্যাকসেন্টের জন্য ব্যবহৃত হয়।
এর জন্য একটি এক্সএমএল বৈশিষ্ট্য রয়েছে:
android:buttonTint="yourcolor"
"Make sure your min API is higher then 21 or this won't work"
এটা মিথ্যা। আমি এন্ড্রয়েডএক্সের সাথে এপিআই 17 কে টার্গেট করছি এবং এটিই আমার পক্ষে কাজ করেছে
যারা অক্ষম, চেক এবং সক্ষম রাষ্ট্রগুলি পরিবর্তন করতে চান তাদের জন্য আপনি বিড়াল নিম্নলিখিত পদক্ষেপগুলি পালন করেন:
<!-- Or androidX radio button or material design radio button -->
<android.support.v7.widget.AppCompatRadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/black"
android:text="Radiobutton1"
app:buttonTint="@color/radio_button_color" />
তারপরে রঙিন ফোল্ডারে "রেডিও_বাটন_ক্লোর.এক্সএমএল" নামে একটি ফাইল তৈরি করুন:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/yellow900" android:state_selected="true" />
<item android:color="@color/yellow800" android:state_checked="true" />
<item android:color="@color/gray800" android:state_enabled="false" />
<item android:color="@color/yellow800" android:state_enabled="true" />
</selector>
ডিফল্টরূপে রেডিওবটনটি রঙ / অ্যাকসেন্ট / রং / এক্সএলএমএল ফাইলগুলিতে অ্যাকসেন্টের রঙ নেয়। সুতরাং যে ফাইল যান এবং এর মান পরিবর্তন
<color name="colorAccent">#3F51B5</color>
আপনি চান রঙ।
সবচেয়ে সহজ উপায় হ'ল colourAccent
রঙ পরিবর্তন করা values->colours.xml
তবে সচেতন থাকুন যে এটি অন্যান্য জিনিস যেমন টেক্সট কার্সার সম্পাদনা ইত্যাদি পরিবর্তন করে ..
< color name="colorAccent">#75aeff</color >
আপনি যদি ক্লিক এবং আনক্লিকড রেডিও বোতামের জন্য আলাদা রঙ সেট করতে চান তবে কেবল ব্যবহার করুন:
android:buttonTint="@drawable/radiobutton" in xml of the radiobutton and your radiobutton.xml will be:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#1E88E5"/>
<item android:state_checked="true" android:color="#00e676"/>
<item android:color="#ffffff"/>
শুধু android:buttonTint="@color/colorPrimary"
ট্যাগে অ্যাট্রিবিউট ব্যবহার করুন, আশা করি এটি সাহায্য করবে
আমার এই সমস্যা ছিল যদি আপনার অ্যাপ্লিকেশনটির একটি কালো ব্যাকগ্রাউন্ড রয়েছে এবং আপনার প্রচুর রেডিওব্যাটন রয়েছে যা ব্যাকগ্রাউন্ডের কারণে অদৃশ্য হয়ে থাকে তবে অ্যান্ড্রয়েড সম্পাদনা করা জটিল: প্রত্যেকের বোতামটিট, সেরা সমাধানটি হ'ল আপনার স্টাইলস.এক্সএমএল ফাইলে পিতামাত থিমটি পরিবর্তন করা is
আমি বদলে গেছি
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
প্রতি
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
সুতরাং রেডিওব্যাটনের চেনাশোনা ধূসর রঙের হালকা ছায়ায় পরিণত হয়েছে এবং এখন এটি একটি কালো পটভূমিতেও দৃশ্যমান।
এটি আমার স্টাইল.এক্সএমএল ফাইল:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
@ jh314 সঠিক। AndroidManifest.xML এ,
<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme"></application>
স্টাইল.এক্সএমএল এ
<!-- Application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorAccent">@color/red</item>
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
আইটেমের নাম অবশ্যই রঙিন আবশ্যক, এটি অ্যাপ্লিকেশনের উইজেটগুলির ডিফল্ট রঙ সিদ্ধান্ত নেয়।
আপনি যদি কোডটিতে রঙ পরিবর্তন করতে চান তবে @ অ্যাকনয়ের উত্তরটি সঠিক।