এডিট টেক্সটে লাইনের রঙ কীভাবে পরিবর্তন করবেন


203

আমি আমার লেআউট এক্সএমএল ফাইলটিতে একটি সম্পাদনা পাঠ্য তৈরি করছি

তবে আমি এডিটেক্সটে রঙ লাইনটি হলো থেকে (উদাহরণস্বরূপ) লাল করতে চাই। কীভাবে তা করা যায়?

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

উত্তর:


310

এটি সেরা সরঞ্জাম যা আপনি সমস্ত দর্শন এবং এর জন্য বিনামূল্যে ব্যবহার করতে পারেন @ জারুম ভ্যান ডের লিন্ডেনকে ধন্যবাদ ।

অ্যান্ড্রয়েড হলো কালার জেনারেটর আপনাকে সহজেই EditTextঅ্যান্ড্রয়েড অ্যাপ্লিকেশনের জন্য নিজের রঙের সাথে অ্যান্ড্রয়েড উপাদান বা স্পিনার হিসাবে সহজেই তৈরি করতে দেয় । এটি সমস্ত প্রয়োজনীয় নয় প্যাচ সম্পদ প্লাস সম্পর্কিত XML অঙ্কনযোগ্য এবং স্টাইলগুলি তৈরি করবে যা আপনি সরাসরি আপনার প্রকল্পে অনুলিপি করতে পারবেন।

http://android-holo-colors.com/

আপডেট 1

এই ডোমেনটির মেয়াদ শেষ হয়ে গেছে বলে মনে হচ্ছে তবে প্রকল্পটি এখানে একটি মুক্ত উত্স find

https://github.com/jeromevdl/android-holo-colors

এটি চেষ্টা করুন

এই চিত্রটি পটভূমিতে রাখে EditText

android:background="@drawable/textfield_activated"

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


আপডেট 2

21 বা ততোধিকের জন্য API আপনি ব্যবহার করতে পারেন android:backgroundTint

<EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Underline color change"
        android:backgroundTint="@android:color/holo_red_light" />

আপডেট 3 এখন আমাদের পিছনে সমর্থন আছেAppCompatEditText

দ্রষ্টব্য: আমাদের অ্যাপ্লিকেশনটি ব্যবহার করতে হবে : অ্যান্ড্রয়েডের পরিবর্তে ব্যাকগ্রাউন্ডটিন্ট: ব্যাকগ্রাউন্ডটাইন্ট

<android.support.v7.widget.AppCompatEditText
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:hint="Underline color change"
    app:backgroundTint="@color/blue_gray_light" />

লিঙ্ক মারা গেছে বলে মনে হচ্ছে? সফ্টওয়্যারটি কি এখনও উপলব্ধ?
জন

1
@ কোডিং জন এই প্রকল্পটি উন্মুক্ত স্রোতযুক্ত আপনি এখানে পাবেন github.com/jeromevdl/android-holo-colors
মিলাপট্যাঙ্ক

এবং কে বলে যে আমাদের "অ্যাপ্লিকেশন: অ্যান্ড্রয়েডের পরিবর্তে ব্যাকগ্রাউন্ডটিন্ট: ব্যাকগ্রাউন্ডটিন্ট" ব্যবহার করতে হবে ??
ব্যবহারকারী 924

যদি আপনি পশ্চাদপটে সামঞ্জস্যতা চান তবে আপনি অ্যাপটি ব্যবহার করতে পারেন: ***
ওড্রয়েড

202

আমি আগের উত্তরগুলি পছন্দ করি না। সবচেয়ে ভাল সমাধানটি ব্যবহার করা:

<android.support.v7.widget.AppCompatEditText

      app:backgroundTint="@color/blue_gray_light" />

android:backgroundTintজন্য EditTextশুধুমাত্র কাজ করে API21 + + । এর কারণে, আমাদের সমর্থন লাইব্রেরি এবং ব্যবহার করতে হবে AppCompatEditText

দ্রষ্টব্য: আমাদের app:backgroundTintপরিবর্তে ব্যবহার করতে হবেandroid:backgroundTint

AndroidX সংস্করণ

<androidx.appcompat.widget.AppCompatEditText

      app:backgroundTint="@color/blue_gray_light" />

3
এটিই সেরা সমাধান! সাধারণ এবং সমস্ত এপিআই স্তরে কাজ করে। ধন্যবাদ!
Ivo Stoyanov

7
আপনার প্রয়োজন নেই, আপনি যদি অ্যাপকম্প্যাট লাইব্রেরি ব্যবহার করেন তবে এডিটিেক্সটগুলি স্বয়ংক্রিয়ভাবে অ্যাপকম্প্যাটএডিটটেক্সটে রূপান্তরিত হয় এবং ব্যাকগ্রাউন্ড টিন্ট প্রয়োগ করা হয়।
স্টেফেন কে।

আমি মনে করি এটা ঠিক সমাধান হওয়া উচিত
Thuy গুয়েন

আপনাকে অনেক ধন্যবাদ. এটি এআইপি 16+ এর জন্য কাজ করেছে। সব থেকে ভালো সমাধান.
আন্দ্রে লুইজ রেইস

2
অ্যাপ্লিকেশন সেট করা সম্ভব: ব্যাকগ্রাউন্ডটিন্ট প্রোগ্রামক্রমে? আমি একটি পদ্ধতি 'সেটব্যাকগ্রাউন্ড টিন্ট' সন্ধান করতে পেরেছিলাম
সারথ নাগেশ

75

আপনি এডিট টেক্সটের ব্যাকগ্রাউন্ডটি এ জাতীয় রঙ করে দ্রুত এডিট টেক্সটের আন্ডারলাইন রঙও পরিবর্তন করতে পারেন:

<EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Something or Other"
            android:backgroundTint="@android:color/holo_green_light" />

18
কেবলমাত্র 21 বা ততোধিক এপিআইতে কাজ করে। কম এপিআই স্তরের জন্য এই কাজটি করার কোনও উপায়?
ভোকো

বিপরীত সমাধান চেক করুন stackoverflow.com/questions/26574328/...
powder366

@ ম্লাজজ0নি শীতল, +1 ডি
ভোকো

3
ক্রেডিট: "backgroundTint Android" ক্ষুদ্রতর API লেভেলের জন্য, শুধুমাত্র পরিবর্তে "backgroundTint" ব্যবহার stackoverflow.com/a/29400711/1590911
Hasaan আলী

এটি পুরো পটভূমির রঙ পরিবর্তন করে, রেখার রঙ নয়
কোড উইজেট

29

21 এর নীচে এপিআইয়ের জন্য , আপনি থিমের বৈশিষ্ট্যটি EditText কোডের নীচে স্টাইল ফাইলে রাখতে পারেন file

<style name="MyEditTextTheme">
    <item name="colorControlNormal">#FFFFFF</item>
    <item name="colorControlActivated">#FFFFFF</item>
    <item name="colorControlHighlight">#FFFFFF</item>
</style>

EditTextহিসাবে এই শৈলী ব্যবহার করুন

<EditText
    android:id="@+id/etPassword"
    android:layout_width="match_parent"
    android:layout_height="@dimen/user_input_field_height"
    android:layout_marginTop="40dp"
    android:hint="@string/password_hint"
    android:theme="@style/MyEditTextTheme"
    android:singleLine="true" />

আপনি কীভাবে স্টাইল ফাইলটিতে আলফা / অস্বচ্ছতা যুক্ত করবেন জানেন? যেমন এটি অস্বচ্ছতার সাথে স্বাভাবিক রঙ নিতে হবে এবং একবার তারা টাইপ করা শুরু করে, এটি সক্রিয় বা হাইলাইট করা রঙ নেওয়া উচিত
ASN

1
@ এটির জন্য আপনাকে একটি পাঠ্য প্রহরী শ্রোতা যুক্ত করতে হবে এবং "অন্টেক্সট চেঞ্জড" পদ্ধতিটি গতিময়ভাবে অস্বচ্ছতা সেট করতে হবে
রাহুল

উহু. সুতরাং এটি স্টাইলিং বা নির্বাচক ফাইল যুক্ত করা যাবে না এবং গতিশীল করা উচিত?
এএসএন

@ এএসএন অস্বচ্ছতা হেক্স রঙে প্রথম প্রথম দুটি অক্ষর 00-এফএফ যুক্ত করা হয়েছে, উদাহরণস্বরূপ: # এ 1 এফএফএফএ
গোল্লায়ানো

21

প্রোগ্রামগতভাবে, আপনি চেষ্টা করতে পারেন:

editText.getBackground().mutate().setColorFilter(getResources().getColor(android.R.color.holo_red_light), PorterDuff.Mode.SRC_ATOP);

2
জামারিনের সেরা উত্তর Forফর্মস প্রভাব
মিস্টার_গিগা

11

আমি মনে করি সবচেয়ে ভাল উপায় থিম দ্বারা:

<style name="MyEditTextTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorControlNormal">@color/black</item>
        <item name="colorControlActivated">@color/action_blue</item>
        <item name="colorControlHighlight">@color/action_blue</item>
</style>

<style name="AddressBookStyle" parent="Theme.AppCompat.Light.DarkActionBar">
     <item name="android:layout_width">match_parent</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:textSize">13sp</item>
     <item name="android:theme">@style/MyEditTextTheme</item>
</style>

<android.support.v7.widget.AppCompatEditText
            style="@style/AddressBookStyle"/>

2
এটি আমার জন্য স্টাইল ট্যাগের সাথে তবে অ্যান্ড্রয়েড: থিম ট্যাগের সাথে কাজ করে না
লক্ষ্যবিলো

9

সম্পাদনা পাঠ্যের আন্ডারলাইন রঙ পরিবর্তন করতে:

আপনি যদি পুরো অ্যাপটি এই স্টাইলটি ভাগ করে নিতে চান তবে আপনি নিম্নলিখিত পদ্ধতিতে করতে পারেন।

(1) স্টাইল.এক্সএমএল ফাইলে যান। থিম.এপকম্প্যাট.লাইট.ডার্ক অ্যাকশনবার (আমার ক্ষেত্রে) এর পিতামাতার উত্তরাধিকার সূত্রে প্রাপ্ত আপনার অ্যাপ থিমটি আপনার অ্যাপ্লিকেশনটিতে স্টাইলের সমস্ত ফাইলের বেস প্যারেন্ট হবে। এর নামটি "অ্যাপবেস থিম" এ পরিবর্তন করুন। এর ঠিক নীচে আরেকটি স্টাইল তৈরি করুন যার অ্যাপ্লিকেশনটির নাম রয়েছে এবং আপনি সদ্য সম্পাদনা করেছেন এমন অ্যাপবেস থিম থেকে উত্তরাধিকার সূত্রে প্রাপ্ত। এটি নীচের মত দেখতে হবে:

<!-- Base application theme. -->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="windowActionBar">false</item>
    <!--see http://www.google.com/design/spec/style/color.html#color-color-palette-->
    <item name="colorPrimary">@color/material_brown_500</item>
    <item name="colorPrimaryDark">@color/material_brown_700</item>
    <item name="colorAccent">@color/flamingo</item>

<style name="AppTheme" parent="AppBaseTheme">
    <!-- Customize your theme here. -->
</style>

তারপরে আপনার "এডিটেক্সট" রঙটি আপনার এডিটেক্সট লাইনের বর্ণের রঙে বদলে দিন color

(২) আপনার যদি স্টাইল.এক্সএমএল সহ অন্যান্য মান ফোল্ডার থাকে তবে এই পদক্ষেপটি খুব গুরুত্বপূর্ণ। কারণ সেই ফাইলটি আপনার পূর্ববর্তী পিতামাতার এক্সএমএল ফাইল থেকে উত্তরাধিকারী হবে। উদাহরণস্বরূপ, আমার কাছে মান -১৯ / স্টাইলস.এক্সএমএল আছে। এটি বিশেষত কিটক্যাট এবং তারপরের জন্য। এর পিতামাতাকে অ্যাপবেস থিমে পরিবর্তন করুন এবং "colorAccent" থেকে মুক্তি পাওয়ার বিষয়টি নিশ্চিত করুন যাতে এটি পিতামাতার রঙকে ওভাররাইড না করে। এছাড়াও আপনার আইটেমগুলি রাখতে হবে যা সংস্করণ 19-এর সাথে সুনির্দিষ্ট।

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:windowTranslucentStatus">true</item>
    </style>
</resources>

9

এটি বেশ সহজ (প্রয়োজনীয়: ন্যূনতম এপিআই 21) ...

  1. আপনার এক্সএমএল এ যান এবং সম্পাদনা পাঠ্য ক্ষেত্র নির্বাচন করুন
  2. ডানদিকে আপনি 'বৈশিষ্ট্য' উইন্ডোটি দেখতে পাবেন see 'সমস্ত বৈশিষ্ট্য দেখুন' নির্বাচন করুন
  3. শুধু 'আভা' জন্য অনুসন্ধান করুন
  4. এবং পছন্দসই রঙের হেক্সে 'ব্যাকগ্রাউন্ড টিন্ট' যুক্ত / পরিবর্তন করুন (বলুন # FF0000)

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

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

কোডিং রাখুন ........ :)


2
সর্বনিম্ন এপিআই 21.
মাইহান নিযাত

পটভূমির রঙ বদলে ব্যাকগ্রাউন্ড পরিবর্তন হয়। এই উত্তরটি ভুল
কোড উইজেট

6

লাইনের রঙটি EditTextপটভূমির সম্পত্তি দ্বারা সংজ্ঞায়িত করা হয় । এটি পরিবর্তন করতে আপনার android:backgroundলেআউট ফাইলটিতে পরিবর্তন করা উচিত ।

আমার নোট করা উচিত যে এই স্টাইলটি 9-প্যাচের অঙ্কনযোগ্য ব্যবহার করে অর্জন করা হয়েছে। আপনি যদি এসডিকে দেখেন তবে দেখতে পাবেন যে এর পটভূমিটি EditTextএই চিত্রটি:

textfield_activated_holo_light.9.png

এটিকে পরিবর্তন করতে আপনি এটি কোনও চিত্রের ম্যানিপুলেশন প্রোগ্রামে খুলতে এবং এটিকে পছন্দসই রঙে রঙ করতে পারেন। এটি হিসাবে সংরক্ষণ করুন bg_edit_text.9.pngএবং তারপরে এটি আপনার আঁকতে সক্ষম ফোল্ডারে রাখুন। এখন আপনি এটি আপনার EditTextপছন্দ হিসাবে এর পটভূমি হিসাবে প্রয়োগ করতে পারেন :

android:background="@drawable/bg_edit_text"

5

আপনি কেবল কোডের এই লাইনটি ব্যবহার করে প্রোগ্রামটিমে এডিটেক্সট এর রঙ পরিবর্তন করতে পারেন:edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));


এটাই আমি খুঁজছি! ধন্যবা
Jiratchaya Intaragumhaeng

4

উইজেটগুলির পটভূমি হ'ল এপিআই স্তর নির্ভর

বিকল্প 1

আপনি আপনার EditTextপটভূমিতে একটি কাস্টম চিত্র সরবরাহ করতে পারেন

android:background="@drawable/custom_editText"

আপনার চিত্রটি এর মতো দেখতে হবে। এটি আপনাকে পছন্দসই প্রভাব দেবে।

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

বিকল্প 2

আপনার EditTextব্যাকগ্রাউন্ড বৈশিষ্ট্যে এই এক্সএমএল সেট করুন ।

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle" android:padding="10dp">
<solid android:color="#4C000000"/>
    <corners android:bottomRightRadius="5dp"
             android:bottomLeftRadius="5dp"
             android:topLeftRadius="5dp"
             android:topRightRadius="5dp"/>
</shape>

EditTextপ্রতিটি এপিআইতে এটির একই চেহারা এবং অনুভূতি থাকবে ।


আমি 4.0 ও তার চেয়ে বেশি সংস্করণে আগ্রহী। এটি হ'ল আমি সক্রিয় সম্পাদনা পাঠের সময় কেবল রেখার রঙ পরিবর্তন করতে চাই
এলেক্স

4

আপনি পটভূমি রঙিন সঙ্গে রঙ পরিবর্তন করতে পারেন <EditText android:backgroundTint="@color/red"/>


1
এটি কেবল এপিআই এর জন্যই কাজ করে> 21 আপনার সকল অ্যাপির জন্য রাহুল উত্তর অনুসরণ করতে হবে বা এপিআই এর জন্য বিভিন্ন লেআউট যুক্ত করতে হবে> 21 লেআউট -21 ফোল্ডারে
লক্ষ্য

4

অঙ্কনযোগ্য / bg_edittext.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>

    <item
        android:left="-2dp"
        android:right="-2dp"
        android:top="-2dp">
        <shape>
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="1dp"
                android:color="@color/colorDivider" />
        </shape>
    </item>
</layer-list>

সম্পাদনা পাঠ্যকে সেট করুন

<android.support.v7.widget.AppCompatEditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_edittext"/>

3

এই পদ্ধতিটি ব্যবহার করুন .. এবং আপনার দর্শনের নাম অনুসারে এটি সংশোধন করুন। এই কোড দুর্দান্ত কাজ করে।

 private boolean validateMobilenumber() {
            if (mobilenumber.getText().toString().trim().isEmpty() || mobilenumber.getText().toString().length() < 10) {
                input_layout_mobilenumber.setErrorEnabled(true);
                input_layout_mobilenumber.setError(getString(R.string.err_msg_mobilenumber));
               // requestFocus(mobilenumber);
                return false;
            } else {
                input_layout_mobilenumber.setError(null);
                input_layout_mobilenumber.setErrorEnabled(false);
                mobilenumber.setBackground(mobilenumber.getBackground().getConstantState().newDrawable());
            }

2

আপনি যদি একটি সমতল লাইন চান তবে আপনি এক্সএমএল দিয়ে এটি সহজেই করতে পারেন। এখানে এক্সএমএল উদাহরণ রয়েছে:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:top="-1dp"
        android:left="-1dp"
        android:right="-1dp"
        android:bottom="1dp"
        >
        <shape android:shape="rectangle">
            <stroke android:width="1dp" android:color="#6A9A3A"/>
        </shape>
    </item>
</layer-list>

যদি আপনি ফোকাসযুক্ত সম্পাদনাটির জন্য বিভিন্ন প্রস্থ এবং রঙ সরবরাহ করতে চান তবে কোনও নির্বাচকের সাথে আকারটি প্রতিস্থাপন করুন।


1
উপাদানের নকশার সাহায্যে এটি আয়তক্ষেত্র তৈরি করে, আরও বিস্তৃত নীচের লাইনের সাথে
ফিলিপ জাইমেক

2

সেরা পদ্ধতির একটি ব্যবহার করা AppCompatEditTextসঙ্গে backgroundTintএর অ্যাট্রিবিউট appনামস্থান। অর্থাত

    <android.support.v7.widget.AppCompatEditText
    android:layout_width="match_parent"      
    app:backgroundTint="YOUR COLOR"
    android:layout_height="wrap_content" />

যখন আমরা android:backgroundTintএটি ব্যবহার করি কেবলমাত্র API21 বা ততোধিক ক্ষেত্রে কাজ করবে তবে app:backgroundTintআপনার অ্যাপ্লিকেশনটি সমস্ত API স্তরে কাজ করে।


1

অ্যান্ড্রয়েড ব্যবহার করুন: সেই সম্পাদনাটির জন্য পটভূমি সম্পত্তি। এটিতে আপনার আঁকতে সক্ষম ফোল্ডার চিত্রটি দিন। উদাহরণ স্বরূপ,

android:background="@drawable/abc.png"

1
 <EditText
        android:id="@+id/et_password_tlay"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Password"
        android:textColorHint="#9e9e9e"
        android:backgroundTint="#000"
        android:singleLine="true"
        android:drawableTint="#FF4081"
        android:paddingTop="25dp"
        android:textColor="#000"
        android:paddingBottom="5dp"
        android:inputType="textPassword"/>

    <View
        android:id="@+id/UnderLine"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_below="@+id/et_password_tlay"
        android:layout_centerHorizontal="true"
        android:background="#03f94e" />

** দেখার সাথে এটি করার একটি **


1

নিম্নলিখিত উপায়ে চেষ্টা করুন, এটি ব্যাকগ্রাউন্ড সম্পত্তি হিসাবে ব্যবহৃত হলে এডিটেক্সটের নীচের লাইনের বর্ণকে রূপান্তর করবে।

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:left="@dimen/spacing_neg"
        android:right="@dimen/spacing_neg"
        android:top="@dimen/spacing_neg">
        <shape>
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="@dimen/spacing_1"
                android:color="@android:color/black" />
        </shape>
    </item>
</layer-list>

0

এটি android:theme="@style/AppTheme.AppBarOverlayআপনার সম্পাদনা পাঠের জন্য এটির বৈশিষ্ট্য হিসাবে অন্তর্ভুক্ত করে এবং <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />এটি আপনার শৈলীতে যুক্ত করার মাধ্যমে এটি করা যায়

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