উত্তর:
CommonsWare দ্বারা রচিত একটি চেয়ে সহজ উপায় আছে। কেবল একটি অঙ্কনযোগ্য সংস্থান তৈরি করুন যা পথটি কীভাবে আঁকবে তা নির্দিষ্ট করে EditText:
<?xml version="1.0" encoding="utf-8"?>
<!-- res/drawable/rounded_edittext.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#FFFFFF"/>
<corners
android:bottomRightRadius="15dp"
android:bottomLeftRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/>
</shape>
তারপরে, আপনার লেআউটে কেবল এই অঙ্কনযোগ্যটিকে উল্লেখ করুন:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dip"
android:background="@drawable/rounded_edittext" />
</LinearLayout>
আপনি কিছু পাবেন:

মার্কের মন্তব্যের ভিত্তিতে, আপনি যেভাবে বিভিন্ন রাজ্য তৈরি করতে পারেন তাতে আমি যুক্ত করতে চাই EditText:
<?xml version="1.0" encoding="utf-8"?>
<!-- res/drawable/rounded_edittext_states.xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/rounded_focused" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/rounded_focused" />
<item
android:state_enabled="true"
android:drawable="@drawable/rounded_edittext" />
</selector>
এইগুলি হল রাজ্যগুলি:
<?xml version="1.0" encoding="utf-8"?>
<!-- res/drawable/rounded_edittext_focused.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#FFFFFF"/>
<stroke android:width="2dp" android:color="#FF0000" />
<corners
android:bottomRightRadius="15dp"
android:bottomLeftRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/>
</shape>
এবং ... এখন দেখা EditTextউচিত:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:background="@drawable/rounded_edittext_states"
android:padding="5dip"/>
</LinearLayout>
android:radius4 লাইন সংজ্ঞায়িত করার পরিবর্তে 4 কোণার ব্যবহারের জন্য একই হয়
এখানে কেবলমাত্র একটি এক্সএমএল ফাইলের একই সমাধান (কিছু অতিরিক্ত বোনাস কোড সহ):
<?xml version="1.0" encoding="utf-8"?>
<!-- res/drawable/edittext_rounded_corners.xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:state_focused="true">
<shape>
<solid android:color="#FF8000"/>
<stroke
android:width="2.3dp"
android:color="#FF8000" />
<corners
android:radius="15dp" />
</shape>
</item>
<item android:state_pressed="true" android:state_focused="false">
<shape>
<solid android:color="#FF8000"/>
<stroke
android:width="2.3dp"
android:color="#FF8000" />
<corners
android:radius="15dp" />
</shape>
</item>
<item android:state_pressed="false" android:state_focused="true">
<shape>
<solid android:color="#FFFFFF"/>
<stroke
android:width="2.3dp"
android:color="#FF8000" />
<corners
android:radius="15dp" />
</shape>
</item>
<item android:state_pressed="false" android:state_focused="false">
<shape>
<gradient
android:startColor="#F2F2F2"
android:centerColor="#FFFFFF"
android:endColor="#FFFFFF"
android:angle="270"
/>
<stroke
android:width="0.7dp"
android:color="#BDBDBD" />
<corners
android:radius="15dp" />
</shape>
</item>
<item android:state_enabled="true">
<shape>
<padding
android:left="4dp"
android:top="4dp"
android:right="4dp"
android:bottom="4dp"
/>
</shape>
</item>
</selector>
তারপরে আপনি কেবল edittext_rounded_corners.xML ফাইলে ব্যাকগ্রাউন্ডের বৈশিষ্ট্যটি সেট করেছেন:
<EditText android:id="@+id/editText_name"
android:background="@drawable/edittext_rounded_corners"/>
topRightRadiusএবং topLeftRadiusচারটি কোণটি শেষ হয়ে গেছে up সাহায্য করুন. :(
আর একবার চেষ্টা কর,
আপনার অঙ্কনযোগ্যতে 1. গোলাকার_ডিটটেক্সট.এক্সএমএল ফাইল তৈরি করুন
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="15dp">
<solid android:color="#FFFFFF"/>
<corners
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp"/>
<stroke android:width="1dip" android:color="#f06060" />
</shape>
2. এক্সএমএল ফাইলে আপনার সম্পাদনা পাঠের জন্য পটভূমি প্রয়োগ করুন
<EditText
android:id="@+id/edit_expiry_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dip"
android:background="@drawable/rounded_edittext"
android:hint="@string/shop_name"
android:inputType="text"/>
3. আপনি এই মত আউটপুট পাবেন
নরফেল্ডের উত্তরের জন্য ধন্যবাদ। আরও ভাল অভ্যন্তরীণ ছায়া প্রভাবের জন্য আমি এর গ্রেডিয়েন্টকে সামান্য পরিবর্তন করেছি।
<item android:state_pressed="false" android:state_focused="false">
<shape>
<gradient
android:centerY="0.2"
android:startColor="#D3D3D3"
android:centerColor="#65FFFFFF"
android:endColor="#00FFFFFF"
android:angle="270"
/>
<stroke
android:width="0.7dp"
android:color="#BDBDBD" />
<corners
android:radius="15dp" />
</shape>
</item>
হালকা পটভূমি বিন্যাসে দুর্দান্ত দেখাচ্ছে ..
আমার চিন্তাভাবনার দ্বারা এটি ইতিমধ্যে গোলাকার কোণে রয়েছে।
আপনি যদি এগুলি আরও বৃত্তাকার চান তবে আপনার প্রয়োজন হবে:
EditTextব্যাকগ্রাউন্ড তৈরি করে (আপনার এসডিকে পাওয়া যায়)StateListDrawableসংস্থানটি ক্লোন করুনEditText ব্যাকগ্রাউন্ডগুলিকে একক হিসাবেDrawable এবং আপনার আরও গোলাকার নয়-প্যাচ পিএনজি ফাইলগুলিতে নির্দেশ করতে এটি সংশোধন করুনStateListDrawableআপনার জন্য পটভূমি হিসেবে EditTextউইজেটযদি আপনি চান তবে কেবল কোণটি সম্পূর্ণ শেষ নয়, তবে নীচের কোডটি ব্যবহার করুন।
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="10dp" />
<padding
android:bottom="3dp"
android:left="0dp"
android:right="0dp"
android:top="3dp" />
<gradient
android:angle="90"
android:endColor="@color/White"
android:startColor="@color/White" />
<stroke
android:width="1dp"
android:color="@color/Gray" />
</shape>
এটি কেবলমাত্র চারটি কোণটি বক্ররেখা করবে EditText।
কেবলমাত্র অন্য উত্তরগুলি যুক্ত করার জন্য, আমি দেখতে পেলাম যে বৃত্তাকার কোণগুলি অর্জনের সবচেয়ে সহজ সমাধানটি হ'ল নিম্নলিখিতটি আপনার সম্পাদনা পাঠের পটভূমি হিসাবে সেট করা।
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/white"/>
<corners android:radius="8dp"/>
</shape>
উপাদান উপাদান লাইব্রেরির সাহায্যে আপনি কাস্টম আকারগুলি আঁকারMaterialShapeDrawable জন্য ব্যবহার করতে পারেন ।
একটি দিয়ে EditTextআপনি করতে পারেন:
<EditText
android:id="@+id/edittext"
../>
তারপরে একটি তৈরি করুন MaterialShapeDrawable:
float radius = getResources().getDimension(R.dimen.default_corner_radius);
EditText editText = findViewById(R.id.edittext);
//Apply the rounded corners
ShapeAppearanceModel shapeAppearanceModel = new ShapeAppearanceModel()
.toBuilder()
.setAllCorners(CornerFamily.ROUNDED,radius)
.build();
MaterialShapeDrawable shapeDrawable =
new MaterialShapeDrawable(shapeAppearanceModel);
//Apply a background color
shapeDrawable.setFillColor(ContextCompat.getColorStateList(this,R.color.white));
//Apply a stroke
shapeDrawable.setStroke(2.0f, ContextCompat.getColor(this,R.color.colorAccent));
ViewCompat.setBackground(editText,shapeDrawable);
এটির জন্য গ্রন্থাগারের 1.1.0 সংস্করণ প্রয়োজন ।
EditTextডিফল্ট ছাড়াও ফোকাস, অক্ষম, চাপ, এবং নির্বাচিত জন্য বিভিন্ন ব্যাকগ্রাউন্ড আছে। গুগল টিভির মতো টাচস্ক্রিনের অভাবজনিত এমন কিছু অ্যান্ড্রয়েড ডিভাইস পেলে মনোনিবেশ করা, বিশেষত, এগিয়ে যাওয়া গুরুত্বপূর্ণ হতে পারে।