উত্তর:
এটি সেরা সরঞ্জাম যা আপনি সমস্ত দর্শন এবং এর জন্য বিনামূল্যে ব্যবহার করতে পারেন @ জারুম ভ্যান ডের লিন্ডেনকে ধন্যবাদ ।
অ্যান্ড্রয়েড হলো কালার জেনারেটর আপনাকে সহজেই EditText
অ্যান্ড্রয়েড অ্যাপ্লিকেশনের জন্য নিজের রঙের সাথে অ্যান্ড্রয়েড উপাদান বা স্পিনার হিসাবে সহজেই তৈরি করতে দেয় । এটি সমস্ত প্রয়োজনীয় নয় প্যাচ সম্পদ প্লাস সম্পর্কিত XML অঙ্কনযোগ্য এবং স্টাইলগুলি তৈরি করবে যা আপনি সরাসরি আপনার প্রকল্পে অনুলিপি করতে পারবেন।
আপডেট 1
এই ডোমেনটির মেয়াদ শেষ হয়ে গেছে বলে মনে হচ্ছে তবে প্রকল্পটি এখানে একটি মুক্ত উত্স find
এটি চেষ্টা করুন
এই চিত্রটি পটভূমিতে রাখে 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" />
আমি আগের উত্তরগুলি পছন্দ করি না। সবচেয়ে ভাল সমাধানটি ব্যবহার করা:
<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" />
আপনি এডিট টেক্সটের ব্যাকগ্রাউন্ডটি এ জাতীয় রঙ করে দ্রুত এডিট টেক্সটের আন্ডারলাইন রঙও পরিবর্তন করতে পারেন:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Something or Other"
android:backgroundTint="@android:color/holo_green_light" />
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" />
প্রোগ্রামগতভাবে, আপনি চেষ্টা করতে পারেন:
editText.getBackground().mutate().setColorFilter(getResources().getColor(android.R.color.holo_red_light), PorterDuff.Mode.SRC_ATOP);
আমি মনে করি সবচেয়ে ভাল উপায় থিম দ্বারা:
<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"/>
সম্পাদনা পাঠ্যের আন্ডারলাইন রঙ পরিবর্তন করতে:
আপনি যদি পুরো অ্যাপটি এই স্টাইলটি ভাগ করে নিতে চান তবে আপনি নিম্নলিখিত পদ্ধতিতে করতে পারেন।
(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>
এটি বেশ সহজ (প্রয়োজনীয়: ন্যূনতম এপিআই 21) ...
কোডিং রাখুন ........ :)
লাইনের রঙটি EditText
পটভূমির সম্পত্তি দ্বারা সংজ্ঞায়িত করা হয় । এটি পরিবর্তন করতে আপনার android:background
লেআউট ফাইলটিতে পরিবর্তন করা উচিত ।
আমার নোট করা উচিত যে এই স্টাইলটি 9-প্যাচের অঙ্কনযোগ্য ব্যবহার করে অর্জন করা হয়েছে। আপনি যদি এসডিকে দেখেন তবে দেখতে পাবেন যে এর পটভূমিটি EditText
এই চিত্রটি:
এটিকে পরিবর্তন করতে আপনি এটি কোনও চিত্রের ম্যানিপুলেশন প্রোগ্রামে খুলতে এবং এটিকে পছন্দসই রঙে রঙ করতে পারেন। এটি হিসাবে সংরক্ষণ করুন bg_edit_text.9.png
এবং তারপরে এটি আপনার আঁকতে সক্ষম ফোল্ডারে রাখুন। এখন আপনি এটি আপনার EditText
পছন্দ হিসাবে এর পটভূমি হিসাবে প্রয়োগ করতে পারেন :
android:background="@drawable/bg_edit_text"
আপনি কেবল কোডের এই লাইনটি ব্যবহার করে প্রোগ্রামটিমে এডিটেক্সট এর রঙ পরিবর্তন করতে পারেন:edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));
উইজেটগুলির পটভূমি হ'ল এপিআই স্তর নির্ভর ।
বিকল্প 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
প্রতিটি এপিআইতে এটির একই চেহারা এবং অনুভূতি থাকবে ।
আপনি পটভূমি রঙিন সঙ্গে রঙ পরিবর্তন করতে পারেন
<EditText
android:backgroundTint="@color/red"/>
অঙ্কনযোগ্য / 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"/>
এই পদ্ধতিটি ব্যবহার করুন .. এবং আপনার দর্শনের নাম অনুসারে এটি সংশোধন করুন। এই কোড দুর্দান্ত কাজ করে।
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());
}
আপনি যদি একটি সমতল লাইন চান তবে আপনি এক্সএমএল দিয়ে এটি সহজেই করতে পারেন। এখানে এক্সএমএল উদাহরণ রয়েছে:
<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>
যদি আপনি ফোকাসযুক্ত সম্পাদনাটির জন্য বিভিন্ন প্রস্থ এবং রঙ সরবরাহ করতে চান তবে কোনও নির্বাচকের সাথে আকারটি প্রতিস্থাপন করুন।
সেরা পদ্ধতির একটি ব্যবহার করা 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 স্তরে কাজ করে।
<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" />
** দেখার সাথে এটি করার একটি **
নিম্নলিখিত উপায়ে চেষ্টা করুন, এটি ব্যাকগ্রাউন্ড সম্পত্তি হিসাবে ব্যবহৃত হলে এডিটেক্সটের নীচের লাইনের বর্ণকে রূপান্তর করবে।
<?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>