Android TextView: إعداد لون الخلفية ديناميكيا لا يعمل

StackOverflow https://stackoverflow.com/questions/1466788

  •  13-09-2019
  •  | 
  •  

سؤال

ضبط لون الخلفية برمجيا من Android TextView لا يبدو أن العمل. أنا أفتقد شيئا!

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

لدي أيضا هذا الملف (colors.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");
هل كانت مفيدة؟

المحلول

يستخدم et.setBackgroundResource(R.color.white);

نصائح أخرى

جرب هذا:

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

أوافق على أن اللون ومورد له نفس النوع، لكنني أقضي أيضا بضع ساعات للعثور على هذا الحل.

لتعيين اللون الأحمر:

textView.setBackgroundColor(0xfff00000);

أو

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

textView.setBackgroundResource(R.color.solid_red);

كان لدي مشكلة مماثلة حيث كنت أخلق لون رقمي دون النظر في قناة ألفا الرائدة. بمعنى آخر. mytext.setTextColor(0xFF0000) (التفكير في أن هذا سيكون أحمر). في حين أن هذا هو اللون الأحمر هو أيضا 100٪ شفافة كما it = 0x00FF0000; القيمة الصحيحة بنسبة 100٪ هي 0xFFFF0000 أو mytext.setTextcolor(0xFFFF0000).

فقط هذا الخط 1 من التعليمات البرمجية غير الخلفية برمجيا

tv.setBackgroundColor(Color.parseColor("#808080"));

حسنا، لدي موقف عندما أعادت خدمة الويب اللون بتنسيق سداسي عشري مثل "# CC2233" وأردت أن أضع هذا اللون على TextView باستخدام SetBackgroundColor ()، لذلك استخدمت فئة ألوان أندرويد للحصول على قيمة INN وظيفة المذكورة. كل شيء يعمل. هذا هو المثال:

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

سجل PS هذه الإجابة لأن الحلول الأخرى لم تعمل من أجلي. آمل أن يساعد هذا شخص ما :)

فيما يلي خطوات القيام بذلك بشكل صحيح:

  1. بادئ ذي بدء، أعلن مثيل للنص النصي في Mearactive.java كما يلي:

    TextView mTextView;
    
  2. قم بتعيين بعض النص بشكل حيوي (إذا كنت تريد) كما يلي:

    mTextView.setText("some_text");
    
  3. الآن، لتعيين لون الخلفية، تحتاج إلى تحديد لونك الخاص في RES-> القيم-> ملف Colors.xml كما يلي:

    <resources>
        <color name="my_color">#000000</color>
    </resources>
    
  4. يمكنك الآن استخدام لون "My_Color" في ملف Java الخاص بك لتعيين الخلفية بشكل حيوي على النحو التالي:

    mTextView.setBackgroundResource(R.color.my_color);
    
tv.setTextColor(getResources().getColor(R.color.solid_red));

هنا بالتفصيل القليل،

إذا كنت في نشاط استخدام هذا

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

إذا كنت في شظية استخدام أدناه الرمز

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

إذا كنت في محول Recycleview استخدم الرمز أدناه

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

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

Color.parseHexColor("17ee27") لم تنجح بالنسبة لي، بدلا من ذلك Color.parseColor("17ee27") عملت تماما.

طريقتان للقيام بذلك:

1.Create اللون في ملف colors.xml مثل:

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

واستخدامها INT INT ASTAME JAVA Class كما:

et.setBackgroundResource(R.color.white);

2.

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

إذا كنت ترغب في دعم جميع الإصدارات، فقم بذلك:

mytextview.setbackgroundcolor (contextcompat.getColor (this، r.color.mycolor)؛

jut استخدام

ArrayAdapter<String> adaptername = new ArrayAdapter<String>(this,
            android.R.layout.simple_dropdown_item_1line, your array list);

يمكنك استخدام android:textColor= " مهما كان لون النص الذي تريد إعطاءه "في ملف XML حيث يتم إعلان عرض النص الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top