ধরা যাক আমি TextViewআমার অ্যাপ্লিকেশনটিতে থাকা সমস্ত দৃষ্টান্ত চাই textColor="#ffffff"। প্রত্যেকের জন্য এটি সেট করার পরিবর্তে সেটি এক জায়গায় সেট করার কোনও উপায় আছে কি TextView?
ধরা যাক আমি TextViewআমার অ্যাপ্লিকেশনটিতে থাকা সমস্ত দৃষ্টান্ত চাই textColor="#ffffff"। প্রত্যেকের জন্য এটি সেট করার পরিবর্তে সেটি এক জায়গায় সেট করার কোনও উপায় আছে কি TextView?
উত্তর:
প্রকৃতপক্ষে, আপনি কোনও কাস্টম জাভা ক্লাস না করে বা পৃথকভাবে শৈলীটি সেট না করেই টেক্সটভিউগুলির (এবং বেশিরভাগ বিল্ট-ইন উইজেটগুলি) ডিফল্ট স্টাইল সেট করতে পারেন।
যদি আপনি themes.xmlঅ্যান্ড্রয়েড উত্সটিতে একবার দেখে থাকেন, আপনি বিভিন্ন উইজেটের জন্য ডিফল্ট শৈলীর জন্য গুচ্ছের গুচ্ছ দেখতে পাবেন। কীটি হ'ল textViewStyle(বা editTextStyle, ইত্যাদি) বৈশিষ্ট্য যা আপনি আপনার কাস্টম থিমটিতে ওভাররাইড করেন। আপনি নিম্নলিখিত উপায়ে এগুলি ওভাররাইড করতে পারেন:
একটি তৈরি করুন styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="android:Theme">
<item name="android:textViewStyle">@style/MyTextViewStyle</item>
</style>
<style name="MyTextViewStyle" parent="android:Widget.TextView">
<item name="android:textColor">#F00</item>
<item name="android:textStyle">bold</item>
</style>
</resources>
তারপরে আপনার অ্যাপ্লিকেশনটিতে কেবল সেই থিমটি এখানে প্রয়োগ করুন AndroidManifest.xml:
<application […] android:theme="@style/MyTheme">…
এবং আপনার সমস্ত পাঠ্য দর্শন ডিফল্ট হবে শৈলীতে সংজ্ঞায়িত MyTextViewStyle(এই উদাহরণস্বরূপ, সাহসী এবং লাল)!
এটি এপিআই স্তর 4 থেকে ডিভাইসগুলিতে পরীক্ষা করা হয়েছিল এবং দুর্দান্ত কাজ করে বলে মনে হচ্ছে।
<item name="android:textViewStyle">@style/MyTextViewStyle</item>স্টাইল মাই থিমের অন্তর্ভুক্ত করি এবং তারপরে আমার আবেদনে শৈলীটি প্রয়োগ করি তবে আমার সমস্ত TextViewগুলি শৈলী অনুসারে প্রদর্শিত হবে (এমনকি অ্যাকশন বারে অ্যাপ্লিকেশনটির নামও)। অ্যাকশন বার দিয়ে কীভাবে বিষয়টি ঠিক করবেন? আমি এটির ডিফল্ট উপস্থিতি চাই। গিথুব
<item name="android:textViewStyle">@style/MyTextViewStyle</item>আছে সেখানে আপনি সন্ধান করতে পারেন এবং কেবল সেখানে অ্যাকশনবারের ডিফল্টটিকে নির্দেশ করে (বা এর মতো কিছু)
এটি করার দুটি উপায় রয়েছে:
আপনি res/valuesডিরেক্টরিতে এক্সএমএল ফাইল তৈরি করে আপনার নিজের শৈলীর সংজ্ঞা দিতে পারেন । সুতরাং, ধরা যাক আপনি লাল এবং গা bold় পাঠ্য রাখতে চান তবে আপনি এই বিষয়বস্তু দিয়ে একটি ফাইল তৈরি করুন:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyRedTheme" parent="android:Theme.Light">
<item name="android:textAppearance">@style/MyRedTextAppearance</item>
</style>
<style name="MyRedTextAppearance" parent="@android:style/TextAppearance">
<item name="android:textColor">#F00</item>
<item name="android:textStyle">bold</item>
</style>
</resources>
উদাহরণস্বরূপ আপনি এটির মতো নামকরণ করতে পারেন res/values/red.xml। তারপরে, আপনাকে কেবলমাত্র যা করতে হবে তা হল আপনার পছন্দসই উইজেটগুলিতে সেই দৃশ্যটি ব্যবহার করা:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
style="@style/MyRedTheme"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="This is red, isn't it?"
/>
</LinearLayout>
আরও রেফারেন্সের জন্য, আপনি এই নিবন্ধটি পড়তে পারেন: অ্যান্ড্রয়েড থিম এবং স্টাইল বুঝতে
এটি অর্জনের এটি আরেকটি সম্ভাব্য উপায় এবং এটি আপনার নিজের সরবরাহ TextViewকরা যা আপনি যা চান তা পাঠ্যের রঙকে সর্বদা সেট করে; এই ক্ষেত্রে:
import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.widget.TextView;
public class RedTextView extends TextView{
public RedTextView(Context context, AttributeSet attrs) {
super(context, attrs);
setTextColor(Color.RED);
}
}
তারপরে, আপনাকে কেবল TextViewআপনার এক্সএমএল ফাইলে এটি স্বাভাবিক হিসাবে বিবেচনা করতে হবে:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<org.example.RedTextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="This is red, isn't it?"
/>
</LinearLayout>
আপনি এক বা অন্য পছন্দটি ব্যবহার করুন তা আপনার প্রয়োজনের উপর নির্ভর করে। যদি আপনি একমাত্র জিনিসটি করতে চান তবে চেহারাটি পরিবর্তন করা হয়, তবে সেরা পদ্ধতির বিষয়টি প্রথম। অন্যদিকে, আপনি যদি চেহারাটি পরিবর্তন করতে চান এবং আপনার উইজেটগুলিতে কিছু নতুন কার্যকারিতা যুক্ত করতে চান তবে দ্বিতীয়টি হ'ল উপায়।
custom_view_layout.xmlকাস্টম ক্লাস বাড়ানোর জন্য যে ফাইলটি ব্যবহৃত হয় তা কেন ব্যবহার করতে পারি না ?
ডিফল্ট পাঠ্যের রঙের জন্য TextView, android:textColorTertiaryআপনার থিমটি পছন্দসই রঙে সেট করুন:
<item name="android:textColorTertiary">@color/your_text_color</item>
অন্য অনেক অ্যান্ড্রয়েড নিয়ন্ত্রণের রঙ ফ্রেমওয়ার্ক বৈশিষ্ট্যগুলি ব্যবহার করে বা লাইব্রেরির বৈশিষ্ট্যগুলিকে সমর্থন করে যদি আপনি সমর্থন লাইব্রেরি ব্যবহার করেন তবে নিয়ন্ত্রণ করা যায়।
বৈশিষ্ট্যাবলী সেট করতে পারেন, একটি তালিকার জন্য, চেক আউট অ্যান্ড্রয়েড সোর্স কোড এর styles.xmlএবং themes.xml, বা এই খুব সহায়ক সারকথা ড্যান Lew দ্বারা, প্রতিটি মান পরিবর্তন করার চেষ্টা এবং তারা কি পর্দায় পরিবর্তন দেখতে পাচ্ছি।