আমি কীভাবে একটি বোতামে সীমানা যুক্ত করব? চিত্র ব্যবহার না করেই কি এটি করা সম্ভব?
আমি কীভাবে একটি বোতামে সীমানা যুক্ত করব? চিত্র ব্যবহার না করেই কি এটি করা সম্ভব?
উত্তর:
পদক্ষেপ 1: ফাইল তৈরি করুন: my_button_bg.xML
পদক্ষেপ 2: এই ফাইলটি পুনরায় / অঙ্কনযোগ্য.এক্সএমএল এ রাখুন
পদক্ষেপ 3: কোড নীচে সন্নিবেশ করান
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#FFFFFF"
android:endColor="#00FF00"
android:angle="270" />
<corners android:radius="3dp" />
<stroke android:width="5px" android:color="#000000" />
</shape>
পদক্ষেপ 4: কোড "অ্যান্ড্রয়েড: ব্যাকগ্রাউন্ড =" @ অঙ্কনযোগ্য / আমার_বটন_বিজি "যেখানে প্রয়োজন যেমন নীচে ব্যবহার করুন:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Your Text"
android:background="@drawable/my_button_bg"
/>
Android Official Solution
যেহেতু অ্যান্ড্রয়েড ডিজাইন সমর্থন v28 চালু হয়েছিল, তাই এটি ব্যবহার করে একটি বর্ডার বোতাম তৈরি করা সহজ MaterialButton
। এই শ্রেণিটি কনস্ট্রাক্টরের বোতামের জন্য আপডেট করা উপাদানগুলির শৈলী সরবরাহ করে। ব্যবহার করে app:strokeColor
এবং app:strokeWidth
আপনি নিম্নলিখিত হিসাবে একটি কাস্টম সীমানা তৈরি করতে পারেন:
androidx
:build.gradle
dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.0.0'
}
Ord সীমানা বোতাম:
<com.google.android.material.button.MaterialButton
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MATERIAL BUTTON"
android:textSize="15sp"
app:strokeColor="@color/green"
app:strokeWidth="2dp" />
• অসম্পূর্ণ সীমানা বোতাম:
<com.google.android.material.button.MaterialButton
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="UNFILLED MATERIAL BUTTON"
android:textColor="@color/green"
android:textSize="15sp"
app:backgroundTint="@android:color/transparent"
app:cornerRadius="8dp"
app:rippleColor="#33AAAAAA"
app:strokeColor="@color/green"
app:strokeWidth="2dp" />
appcompat
:build.gradle
dependencies {
implementation 'com.android.support:design:28.0.0'
}
style.xml
এর Theme.MaterialComponents
পরিবর্তে আপনার অ্যাপ্লিকেশন থিমটি উত্তরাধিকার সূত্রে নিশ্চিত করুন Theme.AppCompat
।
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
Ord সীমানা বোতাম:
<android.support.design.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MATERIAL BUTTON"
android:textSize="15sp"
app:strokeColor="@color/green"
app:strokeWidth="2dp" />
• অসম্পূর্ণ সীমানা বোতাম:
<android.support.design.button.MaterialButton
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="UNFILLED MATERIAL BUTTON"
android:textColor="@color/green"
android:textSize="15sp"
app:backgroundTint="@android:color/transparent"
app:cornerRadius="8dp"
app:rippleColor="#33AAAAAA"
app:strokeColor="@color/green"
app:strokeWidth="2dp" />
style="@style/Widget.AppCompat.Button.Borderless"
?
button_border.xml
আপনার অঙ্কনযোগ্য ফোল্ডারে ফাইল তৈরি করুন।
মাঝামাঝি / অঙ্কনযোগ্য / button_border.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#FFDA8200" />
<stroke
android:width="3dp"
android:color="#FFFF4917" />
</shape>
এবং আপনার এক্সএমএল কার্যকলাপ লেআউটে বোতাম যুক্ত করুন এবং পটভূমি সেট করুন android:background="@drawable/button_border"
।
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_border"
android:text="Button Border" />
অঙ্কনযোগ্য / বাটন_গ্রীন.এক্সএমএল তৈরি করুন:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#003000"
android:centerColor="#006000"
android:endColor="#003000"
android:angle="270" />
<corners android:radius="5dp" />
<stroke android:width="2px" android:color="#007000" />
</shape>
এবং এটি হিসাবে চিহ্নিত করুন @drawable/button_green
:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/button_green"
android:text="Button" />
দয়া করে একটি আকৃতি তৈরি সম্পর্কে অঙ্কনযোগ্য এখানে দেখুন http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape
এটি করা হয়ে গেলে আপনার বোতাম সেটটির জন্য এক্সএমএলে android:background="@drawable/your_button_border"
যদি আপনার বোতামটির স্বচ্ছ ব্যাকগ্রাউন্ডের প্রয়োজন না হয় তবে আপনি ফ্রেম লেআউটটি ব্যবহার করে কোনও সীমানার একটি মায়া তৈরি করতে পারেন। সীমানার পুরুত্ব পরিবর্তন করতে কেবল ফ্রেমলাউটের "প্যাডিং" বৈশিষ্ট্যটি সামঞ্জস্য করুন।
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="1sp"
android:background="#000000">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Your text goes here"
android:background="@color/white"
android:textColor="@color/black"
android:padding="10sp"
/>
</FrameLayout>
আমি নিশ্চিত না যে শেপ এক্সএমএল ফাইলগুলির গতিময়-সম্পাদনাযোগ্য সীমানার রঙ রয়েছে কিনা। তবে আমি জানি যে এই সমাধানের সাহায্যে আপনি ফ্রেম-লেআউট ব্যাকগ্রাউন্ড সেট করে সীমান্তের রঙ পরিবর্তনশীল করতে পারেন।
আপনার এক্সএমএল লেআউটে:
<Button
android:id="@+id/cancelskill"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="25dp"
android:layout_weight="1"
android:background="@drawable/button_border"
android:padding="10dp"
android:text="Cancel"
android:textAllCaps="false"
android:textColor="#ffffff"
android:textSize="20dp" />
অঙ্কনযোগ্য ফোল্ডারে, বোতামের সীমানা শৈলীর জন্য একটি ফাইল তৈরি করুন:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<stroke
android:width="1dp"
android:color="#f43f10" />
</shape>
এবং আপনার ক্রিয়াকলাপে:
GradientDrawable gd1 = new GradientDrawable();
gd1.setColor(0xFFF43F10); // Changes this drawbale to use a single color instead of a gradient
gd1.setCornerRadius(5);
gd1.setStroke(1, 0xFFF43F10);
cancelskill.setBackgroundDrawable(gd1);
cancelskill.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cancelskill.setBackgroundColor(Color.parseColor("#ffffff"));
cancelskill.setTextColor(Color.parseColor("#f43f10"));
GradientDrawable gd = new GradientDrawable();
gd.setColor(0xFFFFFFFF); // Changes this drawbale to use a single color instead of a gradient
gd.setCornerRadius(5);
gd.setStroke(1, 0xFFF43F10);
cancelskill.setBackgroundDrawable(gd);
finish();
}
});
আমি এটি প্রায় এক বছর দেরিতে জানি, তবে আপনি একটি 9 টি পথের চিত্রও তৈরি করতে পারেন এখানে এমন একটি সরঞ্জাম রয়েছে যা অ্যান্ড্রয়েড এসডিকে নিয়ে আসে যা এই জাতীয় চিত্র তৈরি করতে সহায়তা করে এই লিঙ্কটি দেখুন: http://developer.android.com/tools/help/draw9patch .html
PS: চিত্রটিও অসীমভাবে ছোট করে দেওয়া যায়