কোডে টেক্সটভিউয়ের পাঠ্য রঙটি কীভাবে সেট করবেন?


544

এক্সএমএল-তে, আমরা textColorবৈশিষ্ট্য অনুসারে একটি পাঠ্য রঙ সেট করতে পারি android:textColor="#FF0000"। তবে আমি কোডিং করে কীভাবে এটি পরিবর্তন করব?

আমি এরকম কিছু চেষ্টা করেছি:

holder.text.setTextColor(R.color.Red);

যেখানে holderকেবল একটি শ্রেণি এবং textপ্রকারের TextView। লাল একটি আরজিবি মান (# FF0000) স্ট্রিংগুলিতে সেট।

এটি লাল রঙের চেয়ে আলাদা রঙ দেখায়। আমরা সেট টেক্সটকলার () এ কী ধরণের প্যারামিটারটি পাস করতে পারি? ডকুমেন্টেশনে এটি বলে int, তবে এটি কি কোনও সংস্থান রেফারেন্স মান বা অন্য কিছু?


কোডে ইউআই ট্যুইচিং সম্পর্কে একটি নোট, দয়া করে ডিজাইনের সময় ইউআই দেখার সুবিধাগুলি বিবেচনা করুন, রানটাইম পরিবর্তনগুলি সর্বনিম্নে কমিয়ে আনুন।
অ্যালিকেলিন-কিলাকা

উত্তর:


1244

আপনার ব্যবহার করা উচিত:

holder.text.setTextColor(Color.RED);

আপনি Colorঅবশ্যই ক্লাস থেকে বিভিন্ন ফাংশন ব্যবহার করতে পারেন অবশ্যই একই প্রভাব পেতে।

  • Color.parseColor (ম্যানুয়াল) (যেমন LEX ব্যবহার করে)

    text.setTextColor(Color.parseColor("#FFFFFF"));
  • Color.rgbএবং Color.argb( ম্যানুয়াল আরজিবি ) ( ম্যানুয়াল আরজিবি ) (যেমন গণপতি ব্যবহার করে)

    holder.text.setTextColor(Color.rgb(200,0,0));
    holder.text.setTextColor(Color.argb(0,200,0,0));
    
  • এবং অবশ্যই আপনি যদি কোনও XMLফাইলে নিজের রঙটি সংজ্ঞায়িত করতে চান তবে আপনি এটি করতে পারেন:

    <color name="errorColor">#f00</color>

    কারণ getColor()ফাংশনটি 1 অবমানিত হয়েছে , আপনার এটির মতো এটি ব্যবহার করা দরকার:

    ContextCompat.getColor(context, R.color.your_color);
  • আপনি সাদামাটা এইচএক্সও সন্নিবেশ করতে পারেন, এর মতো:

    myTextView.setTextColor(0xAARRGGBB);

    যেখানে আপনার প্রথমে একটি আলফা-চ্যানেল রয়েছে, তারপরে রঙের মান।

অবশ্যই সম্পূর্ণ ম্যানুয়ালটি পরীক্ষা করে দেখুন, সার্বজনীন শ্রেণীর রঙ অবজেক্টকে প্রসারিত করে


1 এই কোডটি এখানেও ব্যবহৃত হত:

textView.setTextColor(getResources().getColor(R.color.errorColor));

এই পদ্ধতিটি এখন অ্যান্ড্রয়েড এম-এ অবহিত করা হয়েছে তবে আপনি সমর্থন লাইব্রেরিতে কনটেক্সট কমপ্যাট থেকে এটি ব্যবহার করতে পারেন , উদাহরণ হিসাবে এখন দেখায়।


2
এছাড়াও, পাঠ্যটি যদি কোনও লিঙ্ক হয় তবে আপনার পাঠ্য.সেটলিঙ্কটেক্সটকলার (...) ব্যবহার করা দরকার; কোড বা অ্যান্ড্রয়েডে: পাঠ্য বর্ণের লিঙ্ক = "..." এক্সএমএলে
WOUNDEDStevenJones

1
@ ন্যান আপনার উত্তরটিতে যদি বর্ণিত যে R.color.XXX রঙের একটি উল্লেখ হিসাবে উল্লেখ করা ভাল হবে be অর্থ যে এটি স্পষ্টতার জন্য (এটি আপনার উদাহরণে যেমন রয়েছে) তেমনভাবে বিবেচনা করা দরকার।
nyaray

আপনি কি বোঝাতে চাচ্ছেন তা আমি নিশ্চিত নই? যেমন রয়েছে, তত্পর্যযুক্ত এবং আরও বেশি সংস্থান ব্যবহার করবে বা আপনি অন্য কিছু বোঝাতে চাইছেন?
Nanne

কোনও রঙের মান কোনও পাঠ্যটি অদৃশ্য হতে চলেছে কি বলার কোনও উপায় আছে?
ক্রিস্টোফার মাসের

6
getColor(int)অবচয় করা হয়।
RestInPeace

137

আপনি যদি এখনও আপনার এক্সএমএল ফাইলে আপনার রঙগুলি নির্দিষ্ট করতে চান:

<color name="errorColor">#f00</color>

তারপরে এটিকে দুটি কোডের মধ্যে একটি দিয়ে আপনার কোডে উল্লেখ করুন:

textView.setTextColor(getResources().getColor(R.color.errorColor, getResources().newTheme()));    

অথবা

textView.setTextColor(getResources().getColor(R.color.errorColor, null));

আপনি সম্ভবত অ্যান্ড্রয়েড এম এর বিপরীতে সংকলন করেন তবে প্রথমটি সম্ভবত পছন্দনীয়, তবে আপনি যে থিমটি পাস করেছেন তা নালাগুলি হতে পারে, তাই সম্ভবত এটি আপনার পক্ষে সহজ?

এবং আপনি যদি কমপ্যাট লাইব্রেরি ব্যবহার করছেন তবে আপনি এটির মতো কিছু করতে পারেন

textView.setTextColor(ContextCompat.getColor(context, R.color.errorColor));

9
সেটটেক্সটকালারের জন্য, কেন সরাসরি আরসিআরএলর.অরররররলর রেফারেন্সের পরিবর্তে গেটআরসোর্সগুলি () গেটকলার () নিতে হবে? আরকোলার.এক্স প্রায় প্রতিটি অন্যান্য পদ্ধতির জন্য কাজ করে। অবিশ্বাস্যরকম হতাশার!
সিভিলিয়ান

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

1
getColor(int)অবচয় করা হয়। ContextCompat.getColor(getContext(), R.color.yourColor);প্রতিস্থাপন বলে মনে হচ্ছে।
RestInPeace

45

এবং অন্য একটি:

TextView text = (TextView) findViewById(R.id.text);
text.setTextColor(Color.parseColor("#FFFFFF"));

1
getResources()একটি প্রসঙ্গ সদস্য ফাংশন। অ্যাডাপ্টারগুলির জন্য, ব্যবহার করুন getContext().getResources()। রঙের মানগুলি @ xbakex এর উত্তরের মতো সংস্থানগুলিতে যেতে হবে।
C0D3LIC1OU5

40

আপনি এটি কেবলমাত্র একটি এক্সএমএল ফাইল থেকেও করতে পারেন।

color.xmlমান ফোল্ডারে একটি ফাইল তৈরি করুন :

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="textbody">#ffcc33</color>

</resources>

তারপরে যে কোনও এক্সএমএল ফাইলে আপনি পাঠ্য ব্যবহার করে রঙ সেট করতে পারেন,

android:textColor="@color/textbody"

অথবা আপনি জাভা ফাইলে এই রঙটি ব্যবহার করতে পারেন:

final TextView tvchange12 = (TextView) findViewById(R.id.textView2);
//Set color for textbody from color.xml file
tvchange1.setTextColor(getResources().getColor(R.color.textbody));

27

তুমি ব্যবহার করতে পার

holder.text.setTextColor(Color.rgb(200,0,0));

স্বচ্ছতার সাথে আপনি কী রঙ চান তা উল্লেখ করতে পারেন।

holder.text.setTextColor(Color.argb(0,200,0,0));

একটি আলফা (স্বচ্ছ) মান আর-লাল জি-সবুজ বি-নীল


15

লেআউট.এক্সএমএলে নিম্নলিখিত কোডটি ব্যবহার করুন

<TextView  android:id="@+id/textView1"    
android:layout_width="wrap_content"    
android:layout_height="wrap_content" 
android:text="@string/add"
android:layout_marginTop="16dp"
android:textAppearance="?
android:attr/textAppearanceMedium"
android:textColor="#25383C"
android:textSize="13sp" />

<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/add"
        android:layout_marginTop="16dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#25383C"
        android:textSize="13sp" />

15

পাঠ্য দর্শনে রঙ সেট করার বিভিন্ন উপায় রয়েছে।

  1. স্টুডিওতে রঙ মান যোগ করুন -> মান-> রং। এক্সএমএল হিসাবে

    <color name="color_purple">#800080</color>

    এখন এক্সএমএল বা অ্যাকটিভিটি ক্লাসে রঙ সেট করুন

    text.setTextColor(getResources().getColor(R.color.color_purple)
  2. আপনি যদি রঙিন কোড দিতে চান তবে সরাসরি কলার.পার্সকালার কোডের নীচে ব্যবহার করুন

    textView.setTextColor(Color.parseColor("#ffffff"));   
  3. আপনি আরজিবিও ব্যবহার করতে পারেন

    text.setTextColor(Color.rgb(200,0,0));
  4. ব্যবহার পাঠ্য দেখার জন্য প্রত্যক্ষ হেক্সকোড ব্যবহার করতে পারে। আপনি সাদামাটা এইচএক্সও সন্নিবেশ করতে পারেন, এর মতো:

    text.setTextColor(0xAARRGGBB);
  5. আপনি আলফা মানগুলির সাথে আরজিবিও ব্যবহার করতে পারেন।

       text.setTextColor(Color.argb(0,200,0,0));

    a for Alpha (স্বচ্ছ) v।

  6. এবং আপনি যদি কমপ্যাট লাইব্রেরি ব্যবহার করছেন তবে আপনি এটির মতো কিছু করতে পারেন

       text.setTextColor(ContextCompat.getColor(context, R.color.color_purple));

9

আমি সাধারণত যে কোনও মতামতের জন্য এটি করি:

myTextView.setTextColor(0xAARRGGBB);

কোথায়

  • এএ আলফা (স্বচ্ছতার জন্য 00, অস্বচ্ছ জন্য এফএফ) সংজ্ঞায়িত করে

  • আরআরজিবিবিবি সাধারণ এইচএমএল রঙের কোডটি (যেমন লাল রঙের জন্য এফএফ 10000) সংজ্ঞায়িত করে।


আর ডাউন-ভোট কেন? আপনি কি এই সম্পর্কে কিছু চিন্তা যুক্ত করতে পারেন?
এডাব্লু

7

আপনি যদি সেটটেক্সট অ্যাপেন্স ব্যবহার করার পরিকল্পনা করেন তবে আপনার জানা উচিত যে এটি থিম থেকে উত্তরাধিকার সূত্রে প্রাপ্ত শৈলীর সাথে পাঠ্যের রঙকে ওভাররাইট করবে। সুতরাং আপনি যদি উভয়ই ব্যবহার করতে চান তবে রঙটি পরে সেট করুন ।

এইটা কাজ করে:

textView.setTextAppearance(context, android.R.style.TextAppearance_Medium);
textView.setTextColor(Color.RED);

যদিও এটি আপনার পাঠ্য রঙটি উদাহরণস্বরূপ সাদা (গা dark় থিমের জন্য) বা কালো (হালকা থিমের জন্য) হতে পারে:

textView.setTextColor(Color.RED);
textView.setTextAppearance(context, android.R.style.TextAppearance_Medium);

এক্সএমএলে এর বিপরীতে আদেশটি স্বেচ্ছাসেবী।



6

আমি বিশ্বাস করি যে আপনি যদি কোনও সংস্থানটি কোনও সংস্থান হিসাবে ( এক্সএমএল ফাইলটিতে) নির্দিষ্ট করতে চান তবে আপনাকে তার আরজিবি মান (কেবল আরজিবি মান নয়) সরবরাহ করতে হবে।

আপনার রঙের মানটি এতে পরিবর্তন করার চেষ্টা করুন #FFFF0000। এটি আপনাকে লাল দেওয়া উচিত।


আমার অভিজ্ঞতা, এটি সত্য নয় এবং এটি একটি আরজিবি মানের পরিবর্তে আরজিবি মান ব্যবহার করা সম্ভব
slinden77

6

text.setTextColor(getResource().getColor(R.color.black)) আপনি color.xML এ কালো রঙ তৈরি করেছেন।

অথবা

text.setTextColor(Color.parseColor("#000000")) এখানে কাঙ্ক্ষিত হেক্সকোড টাইপ করুন

অথবা

text.setTextColor(Color.BLACK) আপনি স্থির রঙের ক্ষেত্রগুলি ব্যবহার করতে পারেন




4

অ্যাডাপ্টার ব্যবহার করে আপনি এই কোডটি ব্যবহার করে পাঠ্যের রঙ সেট করতে পারেন:

holder.text_view = (TextView) convertView.findViewById(R.id.text_view);
holder.text_view.setTextColor(Color.parseColor("#FF00FF"));

4
TextView text = new TextView(context);
text.setTextColor(Color.parseColor("any hex value of a color"));

উপরের কোডটি আমার পক্ষে কাজ করছে। এখানে textএকটি পাঠ্যদর্শন রয়েছে যার উপর রঙ সেট করা প্রয়োজন।



2

23 এর পরে এপিআই, getResources().getColor()অবচিত করা হয়েছে।

পরিবর্তে এটি ব্যবহার করুন:

textView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.color_black));


1

অ্যাডাপ্টারে আপনি এই কোডটি ব্যবহার করে পাঠ্যের রঙ সেট করতে পারেন:

holder.my_text_view = (TextView) convertView.findViewById(R.id.my_text_view);
holder.my_text_view.setTextColor(Color.parseColor("#FFFFFF"));

1

আপনি যদি সরাসরি রঙিন কোড দিতে চান তবে ব্যবহার করুন

textView.setTextColor(Color.parseColor("#ffffff"));

বা যদি আপনি রঙিন ফোল্ডার থেকে রঙ কোড দিতে চান তবে ব্যবহার করুন

textView.setTextColor(R.color.white);

এই কোড টেক্সটভিউ.সেটটেক্সটকালার (আর। কোডার.হাইট); কাজ করে না আপনি ব্যবহার করতে পারে text.setTextColor (getResources () getColor (R.color.color_purple) আপনার color.xml থেকে রঙ পাবার জন্য।
জিয়ান Gomen

1

একটি টেক্সটভিউয়ের রঙ সেট করার জন্য, TextView.setTextColor(R.color.YOURCOLOR)যথেষ্ট নয়!

এটি এভাবে ব্যবহার করতে হবে -

TextView myText = (TextView) findViewById(R.id.YoutTextViewID);

myText.setTextColor(getResources().getColor(R.color.YOURCOLOR);

অথবা

myText.setTextColor(Color.parseColor("#54D66A"));


0

একইভাবে, আমি ব্যবহার করছিলাম color.xml:

<color name="white">#ffffff</color>
    <color name="black">#000000</color>   

TextViewব্যাকগ্রাউন্ড সেট করার জন্য :

textView.setTextColor(R.color.white);

আমি একটি আলাদা রঙ পাচ্ছিলাম, তবে আমি নীচের কোডটি ব্যবহার করার সময় আসল রঙটি পেয়েছিলাম got

textView.setTextColor(Color.parseColor("#ff6363"));

0

আমি এইভাবে করেছি: একটি এক্সএমএল ফাইল তৈরি করুন, যা রেস / মান ফোল্ডারে রঙ বলে।

আমার রং.এক্সএমএল:

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="vermelho_debito">#cc0000</color>
    <color name="azul_credito">#4c4cff</color>
    <color name="preto_bloqueado">#000000</color>
    <color name="verde_claro_fundo_lista">#CFDBC5</color>
    <color name="branco">#ffffff</color>
    <color name="amarelo_corrige">#cccc00</color>
    <color name="verde_confirma">#66b266</color>
</resources>

এক্সএমএল ফাইল থেকে এই রঙগুলি পেতে, আমি এই কোডটি ব্যবহার করেছি: বীরত্বপূর্ণ এটি একটি টেক্সটভিউ এবং সিটিএক্স এটি একটি প্রসঙ্গ বস্তু। আমি এটিকে কোনও ক্রিয়াকলাপ থেকে ব্যবহার করছি না, তবে একটি তালিকার ভিউতে একটি বেসএডাপ্টার। এজন্য আমি এই প্রসঙ্গটি অবজেক্টটি ব্যবহার করেছি।

valor.setTextColor(ctx.getResources().getColor(R.color.azul_credito));

আশা করি এটা সাহায্য করবে.


0

আরজিবি মান সরবরাহ করার জন্য: text.setTextColor(Color.rgb(200,0,0));
একটি হেক্স মান থেকে রঙটি পার্স করার জন্য: text.setTextColor(Color.parseColor("#FFFFFF"));


0

আপনি যদি কোনও অ্যাডাপ্টারে থাকেন এবং এখনও সংস্থানগুলিতে সংজ্ঞায়িত রঙ ব্যবহার করতে চান তবে নীচের পদ্ধতির চেষ্টা করতে পারেন:

holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.myRed));

0
TextView textresult = (TextView)findViewById(R.id.textView1);
textresult.setTextColor(Color.GREEN);

0

getColor () হ্রাস করা হয়

সুতরাং এইভাবে চেষ্টা করুন:

 tv_title.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.sf_white));

0

আমি এটি একটি রিসাইক্লারভিউয়ের জন্য ভিউহোল্ডারের একটি পাঠ্য ভিউয়ের জন্য করছিলাম। আমি কেন এতটা নিশ্চিত নই, তবে ভিউহোল্ডার সূচনাতে এটি আমার পক্ষে কার্যকর হয়নি।

public ViewHolder(View itemView) {
    super(itemView);
    textView = (TextView) itemView.findViewById(R.id.text_view);
    textView.setTextColor(context.getResources().getColor(R.color.myColor));
    // Other stuff
}

তবে যখন আমি এটি অনবিন্দ ভিহোল্ডারে স্থানান্তরিত করেছি, এটি দুর্দান্ত কাজ করেছে।

public void onBindViewHolder(ViewHolder holder, int position){
    // Other stuff
    holder.textView.setTextColor(context.getResources().getColor(R.color.myColor));
}

আশা করি এটি কাউকে সাহায্য করবে।

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