সম্পাদনা পাঠ্য সম্পত্তির নীচে আন্ডারলাইন করুন


108

আমি সম্পাদনা পাঠ্যের নীচে নীল রঙ পরিবর্তন করতে চাই, এটি কী সম্পত্তি তা আমি জানি না।

আমি এর জন্য একটি ভিন্ন পটভূমির রঙ ব্যবহার করার চেষ্টা করেছি কিন্তু এটি কার্যকর হয়নি।

আমি নীচে একটি ছবি সংযুক্ত করেছি:

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


এটি সম্পাদনা পাঠের জন্য একটি পটভূমি যা নির্দিষ্ট এপিআই স্তর / ফোনে উপলভ্য। অন্য কথায়, যদি আপনার অ্যাপ্লিকেশনটি অন্য কোনও ফোনে চলে তবে আপনি একটি পৃথক পটভূমি দেখতে পাবেন।
শেরিফ এলখতিব

আপনার পছন্দসই সম্পাদনা পাঠ্য পটভূমি তৈরি করুন
বিজু

1
পূর্ববর্তী থ্রেডের সম্ভাব্য সদৃশ। এই চেক আউট দয়া করে stackoverflow.com/a/4585750/1129468
gokhanakkurt

নীচের অংশের কোডটি ব্যবহার করুন এবং এটি কাজ করছে কিনা তা আমাকে জানান।
ইনোসেন্টকিলার

উত্তর:


90

প্রোগ্রামটিমে এডিটেক্সট এর আন্ডারলাইন রঙ সেট করা আসলে মোটামুটি সহজ (

রঙ সেট করতে:

editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);

রঙ অপসারণ করতে:

editText.getBackground().clearColorFilter();

দ্রষ্টব্য: যখন এডিটেক্সটটিতে ফোকাস থাকে, আপনার সেট করা রঙটি কার্যকর হবে না, পরিবর্তে, এতে ফোকাসের রঙ থাকে।

এপিআই রেফারেন্স:

অঙ্কনযোগ্য # setColorFilter

অঙ্কনযোগ্য # clearColorFilter


4
অ্যান্ড্রয়েডের জন্য জামারিনেও কাজ করে, আপনার কাস্টম রেন্ডারারে অনিলিমেটেড পরিবর্তন করতে পারেনControl.Background.SetColorFilter(Android.Graphics.Color.White, PorterDuff.Mode.SrcIn);
ডেভিড কনলিস্ক

@ ডেভিডকনলিস্ক আপনি কোনটি Rendererওভাররাইড করেন? আমি কীভাবে অনুসন্ধান বারের জন্য এই কাজটি করব তা বোঝার চেষ্টা করছি।
নিক এন।

@NickN। আমি এটি কোনও পিকারের জন্য ব্যবহার করছিলাম, তাই আমি পিকাররেন্ডারকে ওভাররড করেছি। এটি যে কোনও রেন্ডারারের সাথে আপনার উপযুক্ত (তত্ত্বের
ভিত্তিতে

1
আমার ধারণা এটি করা উচিত, তবে সমস্যাটি হ'ল SearchBarRendererএটি টাইপ নয় EditText। এটি কাজ করতে পারে না।
নিক এন।

85

android:backgroundTint=""আপনার EditTextএক্সএমএল লেআউটে ব্যবহার করুন ।

এপিআই <21 এর জন্য আপনি AppCompatEditTextতখন সমর্থন লাইব্রেরি থেকে ব্যবহার করতে পারেনapp:backgroundTint=""


14
এটি কেবলমাত্র 21 এবং তারপরের উপর api এ কাজ করে। পিছনে সমর্থন নেই।
জন শেলি

2
এটি এখন পর্যন্ত সবচেয়ে সহজ এবং সংক্ষিপ্ত সমাধান।
ইগোরগানাপলস্কি

@ জনশেলি নীচে আমার উত্তর দেখুন , এটি প্রাক-ললিপপ এবং তার জন্য কাজ করে।
সুফিয়ান

3
android:background="@null"এপিআই <21 সহ ডিভাইসগুলির জন্য।
হামাদ নাসির

4
২১ এর নীচে থাকা এপিআইগুলিতে এই বৈশিষ্ট্যটির কাজ করতে আপনার অ্যান্ড্রয়েডের পরিবর্তে অ্যাপ্লিকেশন (xMLns: অ্যাপ্লিকেশন = " স্কিমাস.অ্যান্ড্রয়েড
আন্দ্রেই কে।

38

EditText(ফোকাস, সক্ষম, সক্রিয়) প্রতিটি রাজ্যের জন্য আপনাকে রঙের নয়, আলাদা পটভূমি চিত্র ব্যবহার করতে হবে ।

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

উপরের সাইটে, আপনি হলো থিমের অনেকগুলি উপাদান থেকে চিত্র পেতে পারেন। কেবল "এডিটটেক্সট" এবং আপনি চান রঙটি নির্বাচন করুন। আপনি পৃষ্ঠার নীচে একটি প্রাকদর্শন দেখতে পারেন।

.Zip ফাইলটি ডাউনলোড করুন এবং আপনার প্রকল্পের সংস্থানগুলি অনুলিপি করুন (ছবি এবং এক্সএমএল)।

যদি আপনার এক্সএমএলটির নাম দেওয়া হয়: apptheme_edit_text_holo_light.xML (বা অনুরূপ কিছু):

  1. আপনার এক্সএমএল "styles.xML" এ যান এবং কাস্টম EditTextশৈলী যুক্ত করুন:

    <style name="EditTextCustomHolo" parent="android:Widget.EditText">
       <item name="android:background">@drawable/apptheme_edit_text_holo_light</item>
       <item name="android:textColor">#ffffff</item>
    </style>
    
  2. আপনার এটিতে এটি করুন EditText:

    <EditText
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       style="@style/EditTextCustomHolo"/>
    

এবং এটিই, আমি আশা করি এটি আপনাকে সহায়তা করবে।


24

এটি অ্যান্ড্রয়েডের পুরানো এবং নতুন সংস্করণে দুর্দান্ত কাজ করে (এটি এপিআই 10 তেও দুর্দান্ত কাজ করে!)

আপনার এই স্টাইলটি সংজ্ঞায়িত করুন styles.xml:

<style name="EditText.Login" parent="Widget.AppCompat.EditText">
    <item name="android:textColor">@android:color/white</item>
    <item name="android:textColorHint">@android:color/darker_gray</item>
    <item name="colorAccent">@color/blue</item>
    <item name="colorControlNormal">@color/blue</item>
    <item name="colorControlActivated">@color/blue</item>
</style>

এবং এখন আপনার এক্সএমএলে, এটি থিম এবং স্টাইল হিসাবে সেট করুন ( সেট করার স্টাইলtextColor এবং অন্যান্য সমস্ত বিষয় সেট করার জন্য থিম ):

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="text"
    style="@style/EditText.Login"
    android:theme="@style/EditText.Login"/>

সম্পাদন করা

এই সমাধানটি নতুন অ্যান্ড্রয়েড সংস্করণগুলিতে (ললিপপ বা মার্শমালো) এর পরে একটি ছোট UI বিচূর্ণতা সৃষ্টি করে যে নির্বাচনের হ্যান্ডলগুলি নিম্নরেখাঙ্কিত।

এই বিষয়টি এই থ্রেডে আলোচনা করা হয় । (আমি ব্যক্তিগতভাবে এই সমাধানটি চেষ্টা করে দেখিনি)


দুর্দান্ত উত্তর ধন্যবাদ। প্যারেন্ট = "উইজেট.অ্যাপকম্প্যাট.এডিটটেক্সট" ব্যবহার করে পিতামাতার পরিবর্তে "অ্যান্ড্রয়েড: উইজেট.এডিটটেক্সট" আমার বড় সমস্যা সমাধান করেছে।
সিএফএল

1
আমার মনে হয় আপনি এই কাজটি ললিপপ (21) এবং তার চেয়ে বেশি কাজ করেছেন কারণ আমি সতর্কতা পেয়ে যাচ্ছি যে এটি 21 এর চেয়ে কম নয়
মার্ক ও'সুলিভান

@ মার্কো'সুলিভান না, এটি প্রি-ললিপপ এবং সমস্ত পথে কাজ করে। আমি এটি এপিআই 10 এ পরীক্ষা করেছি এবং এটি দুর্দান্ত কাজ করে। সম্পূর্ণ ত্রুটি এবং এটি যেখানে প্রদর্শিত হবে সেখানে দয়া করে পেস্ট করুন।
সুফিয়ান

ফোকাস করা সম্পাদন করা টেক্সট এখনো আমার জন্য রঙ প্রাথমিক রঙ ছিল তাই আমি এই পদ্ধতির ব্যবহার করতে ছিল: stackoverflow.com/a/36543554/2413303
EpicPandaForce

18

আপনি পরিবর্তন করতে পারেন নিম্নরেখাঙ্কন এর editText রঙ এটা উল্লেখ styles.xml । আপনার অ্যাপ্লিকেশন থিমগুলিতে স্টাইলস.এক্সএমএল নিম্নলিখিত যুক্ত করুন।

<item name="android:textColorSecondary">@color/primary_text_color</item> 

হিসাবে মন্তব্য বিভাগে আনা দ্বারা নির্দেশিত

  <item name="android:colorControlActivated">@color/black</item>

থিম শৈলীতে এটিকে সেট করা কোনও সম্পাদনা পাঠ্য আন্ডারলাইনের রঙ পরিবর্তন করতে ভাল কাজ করে।


3
নোট যা অ্যাকশনবারেও android:textColorSecondaryপিছনের তীর এবং DrawerLayoutহ্যামবার্গার আইকনের রঙ নির্ধারণ করতে ব্যবহৃত হয় ।
বিয়ানকা ড্যানিসিক

7
<item name="colorControlNormal">@color/edittext_underline_color</item>নেভিগেশন বার রঙিন সমস্যার কারণে আমি পাঠ্যকালীন সেকেন্ডারিটির পরিবর্তে ব্যবহার শেষ করেছি ।
বিয়ানকা ড্যানিসিক

14

সুতরাং, আপনার অঙ্কনযোগ্য ফোল্ডারে আপনাকে একটি নতুন .xML ফাইল তৈরি করতে হবে।

এই ফাইলটিতে এই কোডটি পেস্ট করুন:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
   <item
    android:bottom="8dp"
    android:left="-3dp"
    android:right="-3dp"
    android:top="-3dp">
    <shape android:shape="rectangle">
     <stroke
       android:width="1dp"
       android:color="@color/white"/>
     </shape>
   </item>
</layer-list>

এবং আপনার সম্পাদনা পাঠ্য সেট করুন

android:background="@drawable/your_drawable"

আপনি আপনার অঙ্কনযোগ্য এক্সএমএল, সেট কোণে, প্যাডিংস ইত্যাদির সাথে খেলতে পারেন


1
শৈলী বা বিন্যাসে অন্যান্য উপাদানগুলিকে প্রভাবিত না করে
এডিটেক্সটকে

আমি যেটা অপ্রত্যাশিত তা থেকে, আপনি কেবল সম্পাদনার পাঠ্য পটভূমি সাদা করতে পারবেন
রোমানালো

আমি যে সমস্ত সমাধান খুঁজে পেতে পারি তার মধ্যে দিয়েছিলাম, অ্যান্ড্রয়েড মেটেরিয়াল উপাদানগুলি ব্যবহার করে আমার জন্য এটিই কাজ করছিল।
বার্নি.বালাজ

9

আপনার অ্যাপ শৈলী সম্পত্তি সংজ্ঞায়িত colorAccent । এখানে আপনি একটি উদাহরণ খুঁজে

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/action_bar</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/action_bar</item>
</style>


1

সম্পাদনা-পাঠ্যের সীমানার পটভূমির রঙ পরিবর্তন করতে কোডের নীচে ব্যবহার করুন।

অঙ্কনযোগ্য এর অধীনে নতুন এক্সএমএল ফাইল তৈরি করুন।

abc.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#00000000" />
    <stroke android:width="1dip" android:color="#ffffff" />
</shape>

এবং এটি আপনার সম্পাদনা-পাঠ্যের পটভূমি হিসাবে যুক্ত করুন

android:background="@drawable/abc"

আমি উল্লেখ করেছি যে আমি উপরে একটি পটভূমি রঙ সেট করার চেষ্টা করেছি। এটা কাজ করে না।
অ্যান্ড্রয়েড এথুশিয়াস্ট

1

নীচের লাইনের রঙ পরিবর্তন করতে, আপনি এটি আপনার অ্যাপ্লিকেশন থিমটিতে ব্যবহার করতে পারেন:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    <item name="colorControlNormal">#c5c5c5</item>
    <item name="colorControlActivated">#ffe100</item>
    <item name="colorControlHighlight">#ffe100</item>
</style>

ভাসমান লেবেলের রঙ পরিবর্তন করতে নিম্নলিখিত থিমটি লিখুন:

<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">#4ffd04[![enter image description here][1]][1]</item>
</style>

এবং আপনার লেআউটে এই থিমটি ব্যবহার করুন:

 <android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="20dp"
    app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">

    <EditText
        android:id="@+id/edtTxtFirstName_CompleteProfileOneActivity"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:capitalize="characters"
        android:hint="User Name"
        android:imeOptions="actionNext"
        android:inputType="text"
        android:singleLine="true"
        android:textColor="@android:color/white" />

</android.support.design.widget.TextInputLayout>

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


ফোকাস করা সম্পাদন করা টেক্সট এখনো আমার জন্য রঙ প্রাথমিক রঙ ছিল তাই আমি এই পদ্ধতির ব্যবহার করতে ছিল: stackoverflow.com/a/36543554/2413303
EpicPandaForce

1

আপনি এটি AppCompatEditText এবং রঙ নির্বাচক দিয়ে করতে পারেন:

            <androidx.appcompat.widget.AppCompatEditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:backgroundTint="@color/selector_edittext_underline" />

selector_edittext_underline.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/focused_color" 
          android:state_focused="true" />
    <item android:color="@color/hint_color" />
</selector>

0

আপনার যদি এপিআই <21 দিয়ে ডিভাইসগুলি সমর্থন না করে থাকে তবে xML এ ব্যাকগ্রাউন্ডহিন্ট ব্যবহার করুন, উদাহরণস্বরূপ:

 <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPersonName"
            android:hint="Task Name"
            android:ems="10"
            android:id="@+id/task_name"
            android:layout_marginBottom="15dp"
            android:textAlignment="center"
            android:textColor="@android:color/white"

            android:textColorLink="@color/blue"
            android:textColorHint="@color/blue"
            android:backgroundTint="@color/lighter_blue" />

আরও ভাল সমর্থন এবং ফলব্যাকের জন্য @ একারিউজ সমাধান ব্যবহার করুন use ব্যাকগ্রাউন্ডহিন্ট হ'ল সবচেয়ে বেদনাদায়ক সমাধান, তবে আপনার প্রয়োজনীয়তার উপর ভিত্তি করে একটি কল করুন backward


0

আপনার colorAccentযে রঙটি আপনার প্রয়োজন সেই রঙটি সেট করুন colorAccentএবং আউটপুট পেতে চালান


0

কেবল অ্যান্ড্রয়েড পরিবর্তন করুন: এক্সএমএল কোডে আপনার রঙে ব্যাকগ্রাউন্ড টিন্ট

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