আমি কীভাবে একটি Android সুইচ স্টাইল করতে পারি?


121

এপিআই 14 এ প্রবর্তিত স্যুইচ উইজেটটি হলো থিম সহ ডিফল্টরূপে স্টাইল করা হয়েছে। ব্র্যান্ডিংয়ের কারণে এটির রং পরিবর্তন করে কিছুটা আকৃতি দিতে আমি কিছুটা আলাদা স্টাইল করতে চাই। কিভাবে এই সম্পর্কে যায়? আমি জানি এটি অবশ্যই সম্ভব হতে পারে, যেমন আমি আইভিএস ডিফল্ট আইসিএস এবং স্যামসাংয়ের টাচউইজ থিমের মধ্যে পার্থক্য দেখেছি

এখানে চিত্র বর্ণনা লিখুন

আমি ধরে নিয়েছি আমার কিছু স্টেট ড্রয়েবলের দরকার হবে এবং আমি সুইচ_থম্ব এবং সুইচ_ট্র্যাকের সাথে http://developer.android.com/references/android/R.styleable.html এর কয়েকটি স্টাইল দেখেছি যা দেখতে আমার পরে কেমন হতে পারে । এগুলি কীভাবে ব্যবহার করতে হয় তা আমি জানি না।

আমি যদি অ্যাকশনবারশারলক ব্যবহার করে যা কোনও পার্থক্য করে। কেবলমাত্র API v14 বা ততোধিক চলমান ডিভাইসগুলি অবশ্যই অবশ্যই একটি স্যুইচ ব্যবহার করতে সক্ষম হবে।

উত্তর:


258

আপনি ব্যাকগ্রাউন্ডের জন্য ব্যবহৃত অঙ্কনযোগ্য এবং এই জাতীয় পরিবর্তনকারী অংশটি সংজ্ঞায়িত করতে পারেন:

<Switch
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:thumb="@drawable/switch_thumb"
    android:track="@drawable/switch_bg" />

এখন আপনাকে এমন একটি নির্বাচক তৈরি করতে হবে যা স্যুইচার ড্রয়িংয়ের জন্য বিভিন্ন রাজ্যকে সংজ্ঞায়িত করে। অ্যান্ড্রয়েড উত্স থেকে অনুলিপি এখানে:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@drawable/switch_thumb_disabled_holo_light" />
    <item android:state_pressed="true"  android:drawable="@drawable/switch_thumb_pressed_holo_light" />
    <item android:state_checked="true"  android:drawable="@drawable/switch_thumb_activated_holo_light" />
    <item                               android:drawable="@drawable/switch_thumb_holo_light" />
</selector>

এটি থাম্ব অঙ্কনযোগ্য, পটভূমির উপরে সরানো ইমেজ সংজ্ঞায়িত করে। স্লাইডারের জন্য চারটি নাইনপ্যাচ চিত্র ব্যবহৃত হয়েছে:

নিষ্ক্রিয় সংস্করণ (অ্যান্ড্রয়েড ব্যবহার করছে এমন এক্সএইচডিপিআই সংস্করণ) নিষ্ক্রিয় সংস্করণ
চাপযুক্ত স্লাইডার: চাপা স্লাইডার
অ্যাক্টিভেটেড স্লাইডার (স্টেটে): সক্রিয় স্লাইডার
ডিফল্ট সংস্করণ (অফ স্টেট):এখানে চিত্র বর্ণনা লিখুন

পটভূমির জন্য তিনটি পৃথক রাষ্ট্রও রয়েছে যা নিম্নলিখিত নির্বাচককে সংজ্ঞায়িত করা হয়েছে:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@drawable/switch_bg_disabled_holo_dark" />
    <item android:state_focused="true"  android:drawable="@drawable/switch_bg_focused_holo_dark" />
    <item                               android:drawable="@drawable/switch_bg_holo_dark" />
</selector>

নিষ্ক্রিয় সংস্করণ: নিষ্ক্রিয় সংস্করণ
দৃষ্টি নিবদ্ধ করা সংস্করণ: ফোকাসড সংস্করণ
এবং ডিফল্ট সংস্করণ:ডিফল্ট সংস্করণ

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


1
খুব বিস্তারিত ধন্যবাদ, 9-প্যাচ স্লাইডার চিত্রগুলি যে থাম্বের অংশটিকে ট্র্যাক থেকে সরিয়ে দেয় বিশেষত সহায়ক ছিল কারণ আমি কীভাবে এটি করতে পেরেছি তার পক্ষে কাজ করতে পারিনি। (ডিফল্ট স্লাইডারে ট্র্যাকের শেষ
প্রান্তটি

2
আরও একটি স্টেট রয়েছে যা <আইটেম অ্যান্ড্রয়েড: state_checked = "সত্য"> যা স্যুইচ "অন" অবস্থায় থাকা অবস্থায় ট্র্যাক চিত্র পরিবর্তন করতে পারে। সুতরাং আপনি যদি "অন" / "অফ" ট্র্যাকটি পরিবর্তন করতে চান তবে এই অবস্থাটি ব্যবহার করুন।
নারান্দ্রজিভ 8১

1
আমি কীভাবে থাম্বটির জন্য পাঠ্য রঙটি স্টাইল করতে পারি? আমি এটি কোথাও খুঁজে পাচ্ছি না :(
pojomx

1
@ pojomx। আপনি কি পাঠ্য রঙের জন্য কোনও সমাধান খুঁজে পেয়েছেন - যেমন - পাঠ্য রঙটি চালু / বন্ধ? আমি একই সমস্যার মুখোমুখি হয়েছি এবং একই পয়েন্টে আটকে আছি।
সমিত

পাঠ্যের রঙ => অ্যান্ড্রয়েড পরিবর্তন করতে: সুইচটেক্সটএপরিয়েন্স = "@ স্টাইল / মাইসুইচটেক্সটসাইল"
অ্যান্ড্রু

50

এটি জানুসের একটি দুর্দান্ত উত্তর। তবে কেবল উত্তরগুলির জন্য এই পৃষ্ঠায় আসা লোকেদের পক্ষে, সহজ উপায় হ'ল অ্যান্ড্রয়েড অ্যাসেট স্টুডিও থেকে লিঙ্কযুক্ত http://android-holo-colors.com/ (মৃত লিঙ্ক) এ

সমস্ত সরঞ্জামের একটি ভাল বর্ণনা AndroidOnRocks.comরয়েছে (এখন অফলাইনে সাইট)

যাইহোক, আমি সবাইকে জানুশ থেকে উত্তরটি পড়ার জন্য উচ্চতর সুপারিশ করব কারণ এটি বোঝার বিষয়টি আরও পরিষ্কার করে দেবে। স্টাফগুলি রিয়েল দ্রুত করার জন্য সরঞ্জামটি ব্যবহার করুন


6
গ্রেট টাইম সেভার 9-প্যাচ, রাজ্য তালিকা ড্রয়যোগ্য, ইত্যাদি সমস্ত এক ক্লিকে!
স্টিভ

এই উত্তরটি এত সহজ যে আমি এটি "কাস্টম রঙের দ্বারা সহজেই অ্যান্ড্রয়েড হোলো নিয়ন্ত্রণ তৈরি করার সরঞ্জাম" এবং স্বীকৃত উত্তর হিসাবে একটি প্রশ্ন হিসাবে পোস্ট দেখতে চাই। বিকাশকারীদের এটি প্রয়োজন।
র্যাচেল

আমি নিশ্চিত যে এটি একটি দুর্দান্ত সরঞ্জাম হতে পারত ... সমস্ত লিঙ্কগুলি মরে গেছে, দুঃখের সাথে
Razvan_TK9692

3

বিভিন্ন রঙের বৈশিষ্ট্য সেট করে আপনি উপাদান শৈলীগুলি কাস্টমাইজ করতে পারেন। উদাহরণস্বরূপ কাস্টম অ্যাপ্লিকেশন থিম

<style name="CustomAppTheme" parent="Theme.AppCompat">
    <item name="android:textColorPrimaryDisableOnly">#00838f</item>
    <item name="colorAccent">#e91e63</item>
</style>

কাস্টম সুইচ থিম

<style name="MySwitch" parent="@style/Widget.AppCompat.CompoundButton.Switch">
    <item name="android:textColorPrimaryDisableOnly">#b71c1c</item>
    <item name="android:colorControlActivated">#1b5e20</item>
    <item name="android:colorForeground">#f57f17</item>
    <item name="android:textAppearance">@style/TextAppearance.AppCompat</item>
</style>

আপনি এক্সএমএল ড্রবেবলগুলি সংজ্ঞায়িত করে সুইচ ট্র্যাকটি এবং নীচের চিত্রের মতো থাম্ব পরিবর্তন করতে পারেন আরও তথ্যের জন্য http://www.zoftino.com/android-switch-button-and-custom-switch- উদাহরণ

কাস্টম সুইচ ট্র্যাক এবং থাম্ব


1

বিকল্প এবং অনেক সহজ উপায় 9-প্যাচের পরিবর্তে আকারগুলি ব্যবহার করা। এটি ইতিমধ্যে এখানে ব্যাখ্যা করা হয়েছে: https://stackoverflow.com/a/24725831/512011


আইডিকি, কিশু 27 এর উত্তরে উল্লিখিত সরঞ্জামটি কেবল রঙ পরিবর্তন করার জন্য অনেক দ্রুত ছিল কারণ এটি আপনার জন্য সমস্ত ফাইল তৈরি করে। আমি অনুমান করি যে আপনি রঙটি ছাড়াও আকারটি কাস্টমাইজ করতে চান তবে এটি সম্ভবত দ্রুত।
জেস্টেফেন

সরঞ্জামটি সত্যিই দুর্দান্ত, যদিও সত্যই, আমি এমন একটি ধারণা পছন্দ করি না যে আপনি যদি কেবল কোনও কিছুর রঙ পরিবর্তন করতে চান তবে আপনাকে একগুচ্ছ চিত্র তৈরি করতে হবে। এছাড়াও, আপনি যদি আকারগুলি ব্যবহার করছেন তবে আপনার অফ / অন সুইচ পজিশনের জন্য বিভিন্ন রঙ থাকতে পারে।
নেটপর্ক

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