অ্যান্ড্রয়েড টেক্সটভিউ: ব্যাকগ্রাউন্ডের রঙটি গতিশীলভাবে সেট করা কাজ করে না


169

একটি অ্যান্ড্রয়েডের প্রোগ্রমেটিক রঙটি সেট করা TextView করা কাজ করছে বলে মনে হয় না। আমি কিছু মিস করছি!

TextView et = new TextView(activity);
et.setText("350");
et.setBackgroundColor(R.color.white);

আমার রেজাইজ / মান ফোল্ডারে এই ফাইলটি (color.xML) রয়েছে

<resources>
        <color name="white">#ffffffff</color>
        <color name="black">#ff000000</color>
</resources>

[সম্পাদনা]: এছাড়াও, পাঠ্যের রঙ সেট করার ফলে পাঠ্যদর্শনটি অদৃশ্য হয়ে যায়।

TextView c1 = new TextView(activity);
c1.setTextColor(R.color.solid_red);
c1.setText("My Text");

উত্তর:


332

ব্যবহার et.setBackgroundResource(R.color.white);


5
অ্যান্ড্রয়েড এপিআই আসলেই কিছু, কেন এটি ত্রুটি ছুঁড়ে ফেলতে পারেনি?
তাওয়ানি

53
কারণ এটি ত্রুটি নয়। সেটব্যাকগ্রাউন্ড কালার () সংখ্যার আকারে একটি রঙ নেয় (উদাহরণস্বরূপ, লাল জন্য 0xFFFF0000)। আর কোডার.হাইটও একটি সংখ্যা।
কমন্সওয়েয়ার

6
ডি আহা! এটি অবশ্যই সর্বব্যাপী ইনটগুলির চেয়ে এনামগুলি দিয়ে আরও ভাল করা যেতে পারে। উত্তর করার জন্য ধন্যবাদ.
ওয়াজিয়াচ গারস্কি

2
তারা বিভিন্ন ধরণের স্বাক্ষর ব্যবহার করতে পারে! একজনকে কালারআইডি এবং অন্যজন হেক্সকালার বা অন্য কিছু নামে পরিচিত। উভয়ই পূর্ণসংখ্যার তবে তারা একই ধরণের নয়

1
খুব অদ্ভুত. ডকুমেন্টেশন থেকে: পটভূমি অপসারণের জন্য সংস্থানটি একটি অঙ্কনযোগ্য বস্তু বা 0 হিসাবে উল্লেখ করা উচিত ।
আর্টেম

73

এটা চেষ্টা কর:

TextView c1 = new TextView(activity);
c1.setTextColor(getResources().getColor(R.color.solid_red));
c1.setText("My Text");

আমি একমত যে একটি রঙ এবং একটি উত্স একই ধরণের আছে, তবে আমি এই সমাধানটি খুঁজতে কয়েক ঘন্টা ব্যয় করি।


2
আমি এখনই এটি সম্পূর্ণরূপে বুঝতে পারি না (এপিআই ডকের সন্ধানে) তবে এটি কার্যকর হয়, তাই আপনাকে ধন্যবাদ!
কোডজাস্টিন ডটকম

ধন্যবাদ, আপনি আমাকে কয়েক ঘন্টা বাঁচিয়েছেন! এখন যেহেতু আমি সমাধানটি জানি, এটি আমার কাছে বোধগম্য হয় তবে আমি নিশ্চিত যে এটি আমার নিজেরাই বের করতে কয়েক ঘন্টা লেগেছিল।
ফ্রিওয়েলনাট

ধন্যবাদ। অ্যান্ড্রয়েড এপিআই কখনও কখনও সত্যিকার অর্থে স্বজ্ঞাত হয় না।
suDocker

64

লাল রঙ সেট করতে:

textView.setBackgroundColor(0xfff00000);

অথবা

<color name="solid_red">#fff00000</color>

textView.setBackgroundResource(R.color.solid_red);

1
ব্যাডমনকির দেওয়া উত্তরটি প্রতিধ্বনিত করতে এটি আরও জনপ্রিয় উত্তর, আপনি স্বচ্ছতার জন্য হাই অর্ডার বিটগুলি শূন্য নন তে সেট করতে হবে। আমি এ.কে ছাড়াই আরজিবি নির্দিষ্ট করে সমস্ত সময় ধরা পড়েছি, খাঁটি নীল রঙে ব্যাকগ্রাউন্ড সেট করতে 0xff0000ff ব্যবহার করুন, 0x0000ff নয় এটি কার্যকর হবে না।
জনিলম্বদা

.Xml এ <color> উপাদানের মান কেবল ক্লাসিক 6 ডিজিটের সাথে কাজ করে: # FF0000
অস্ত্র এক্স

@ ওয়েপোনএক্স: এটি স্বচ্ছ রঙের সাথে সুন্দরভাবে কাজ করে (8 টি সংখ্যায়)।
কুলমাইন্ড

@ ওয়েপন এক্স ফাংশনটিতে 4 বাইটের একটি পূর্ণসংখ্যা লাগে। 6 হেক্স ডিজিট 3 বাইট

20

আমার একটি অনুরূপ সমস্যা ছিল যেখানে আমি নেতৃস্থানীয় আলফা চ্যানেলটি বিবেচনা না করে একটি সংখ্যা রঙ তৈরি করছিলাম। অর্থাত। mytext.setTextColor(0xFF0000)(এই লাল হবে ভেবে) এই একটি লাল রঙ এটি যেমন 100% স্বচ্ছ it = 0x00FF0000; সঠিক 100% অস্বচ্ছ মান 0xFFFF0000বা mytext.setTextcolor(0xFFFF0000)



8

ওয়েল আমার এমন পরিস্থিতি হয়েছিল যখন "# সিসি ২২৩৩" এর মতো হেক্স ফর্ম্যাটে ওয়েব সার্ভিস একটি রঙ ফিরেছে এবং আমি সেটব্যাকগ্রাউন্ড কালার () ব্যবহার করে এই রঙটি টেক্সটভিউতে লাগাতে চেয়েছিলাম, তাই আমি হেক্স স্ট্রিংয়ের মান মূল্য পেতে অ্যান্ড্রয়েড রঙের ক্লাস ব্যবহার করেছি এবং এটিকে পাস করেছি উল্লিখিত ফাংশন। সব কাজ। এটি উদাহরণ:

String myHexColor = "#CC2233";
TextView myView = (TextView) findViewById(R.id.myTextView);
myView.setBackGroundColor(Color.pasrsehexString(myHexColor));

পিএস এই উত্তরটি পোস্ট করেছে কারণ অন্যান্য সমাধানগুলি আমার পক্ষে কাজ করে না। আমি আশা করি এটি কাউকে সহায়তা করবে :)


5

এখানে কিছুটা বিশদভাবে জানাচ্ছি,

আপনি যদি কার্যকলাপে থাকেন তবে এটি ব্যবহার করুন

textview.setBackground(ContextCompat.getColor(this,R.color.yourcolor));

আপনি যদি নীচে কোড টুকরা ব্যবহার করে

textview.setBackground(ContextCompat.getColor(getActivity(),R.color.yourcolor));

আপনি যদি নীচে কোডটি পুনর্ব্যবহারযোগ্য অ্যাডাপ্টার ব্যবহার করেন

textview.setBackground(ContextCompat.getColor(context,R.color.yourcolor));

// use holder.textview if you are in onBindviewholder
//here context is passed from fragment

4

এটি সঠিকভাবে করার পদক্ষেপ এখানে:

  1. সবার আগে, আপনার মেইনএকটিভিটি.জভাতে টেক্সটভিউয়ের একটি উদাহরণ নীচের হিসাবে ঘোষণা করুন:

    TextView mTextView;
  2. নিম্নরূপে কিছু পাঠ্য নির্ধারণ করুন (যদি আপনি চান):

    mTextView.setText("some_text");
  3. এখন, পটভূমির রঙ সেট করতে, আপনাকে নিজের বর্ণটি পুনরায়- মানগুলি>> রং.এক্সএমএল ফাইলে সংজ্ঞায়িত করতে হবে:

    <resources>
        <color name="my_color">#000000</color>
    </resources>
  4. আপনি এখন আপনার জাভা ফাইলে "my_color" রঙটি ব্যাকগ্রাউন্ডটি গতিশীলভাবে সেট করতে পারেন:

    mTextView.setBackgroundResource(R.color.my_color);


3

Color.parseHexColor("17ee27")আমার পক্ষে কাজ করেনি, পরিবর্তে Color.parseColor("17ee27")নিখুঁতভাবে কাজ করেছিলেন।


2

এটি করার দুটি উপায়:

Color.xml ফাইলে 1 রঙ রঙ করুন:

<resources>
        <color name="white">#ffffff</color>
</resources>

এবং এটি ব্যবহার করুন জাভা ক্লাসটি যেমন:

et.setBackgroundResource(R.color.white);

2।

et.setBackgroundColor(getResources().getColor(R.color.white));
                or
et.setBackgroundColor(Color.parseColor("#ffffff"));



-10

আপনি android:textColor= "যে টেক্সট রঙটি দিতে চান তা ব্যবহার করতে পারেন xML ফাইলটিতে যেখানে আপনার পাঠ্য দর্শন ঘোষিত হয়েছে।


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