অ্যান্ড্রয়েড - বোতামের জন্য সীমানা


উত্তর:


432

পদক্ষেপ 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"
    />

1
ধন্যবাদ .এর জন্য +1.এটি এক্সএলএমএল ফাইল হিসাবে অঙ্কনযোগ্য ফোল্ডারে সংরক্ষণের পরে weএটি আমরা কীভাবে ব্যবহার করতে পারি?
অ্যান্ড্রয়েড খুনি

1
@ অ্যান্ড্রয়েড পাওয়ার আপনি এটি আর.ড্রেবলযোগ্য.এফআইএল_NAME এর মাধ্যমে ব্যবহার করতে পারেন
স্লেটন

2
এই কোডটি কোথায় যায়, বোতামটির জন্য মার্কআপের জন্য .MLML কোডে? এটি কি স্টাইলস.এমএমএল টাইপ ফাইলে যায়?
জের্মে

আমি সাদা দিয়ে একটি বোতামের রূপরেখা তৈরি করার জন্য কেবল স্ট্রোকটি (এবং এটি সাদা করে দিয়েছি) ব্যবহার করেছি। 4.4 দিয়ে দুর্দান্ত কাজ করে তবে 4.0.3 এ বোতামটি কালো হয়ে যায় - কোনও ধারণা কেন?
কিবি

1
@ কিবি দুঃখিত দুঃখিত কেউ আমার উত্তর সম্পাদনা করেছেন এবং আপনাকে ভুল পরামর্শ দিয়েছেন। আমি এটি পরিবর্তন করেছি তবে আমি হতবাক হয়েছি যে কেউ গৃহীত উত্তর সম্পাদনা করতে এবং দরকারীতা পরিবর্তন করতে পারে।
পেডেন্টিক

57

Android Official Solution

যেহেতু অ্যান্ড্রয়েড ডিজাইন সমর্থন v28 চালু হয়েছিল, তাই এটি ব্যবহার করে একটি বর্ডার বোতাম তৈরি করা সহজ MaterialButton। এই শ্রেণিটি কনস্ট্রাক্টরের বোতামের জন্য আপডেট করা উপাদানগুলির শৈলী সরবরাহ করে। ব্যবহার করে app:strokeColorএবং app:strokeWidthআপনি নিম্নলিখিত হিসাবে একটি কাস্টম সীমানা তৈরি করতে পারেন:


1. আপনি যখন ব্যবহার করবেন 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"?
কেউ কেউ কোথাও

আমি এটি খুঁজে পেয়েছি, ডেভেলপার
কোথাও কোথাও

যেমন আপনি উল্লেখ করেছেন, একটি স্টাইল নির্ধারণ করা সম্ভব যা সীমান্তহীন স্টাইল থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়, তারপরে বেস শৈলী অনুসারে পছন্দসই বৈশিষ্ট্য যুক্ত করুন।
অ্যামিনোগ্রাফি

কিছুটা ওটি, তবে জিআইএফের নীচে অ্যাকশন বারে আকর্ষণীয় চতুর্থ আইকনটি কী? (এছাড়াও দেখে মনে হচ্ছে
জিআইএফটি

1
হতে পারে আমি ভুল তবে আমার জন্য • অসম্পূর্ণ সীমানাযুক্ত বোতামে, আমাকে পরিবর্তন করতে হবে, অ্যাপ: ব্যাকগ্রাউন্ডটাইন্ট = "@ রঙ / স্বচ্ছ" অ্যাপ্লিকেশন: ব্যাকগ্রাউন্ডটিন্ট = "@ অ্যান্ড্রয়েড: রঙ / স্বচ্ছ"
xarly

37

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" />

19

অঙ্কনযোগ্য / বাটন_গ্রীন.এক্সএমএল তৈরি করুন:

<?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" />


8

যদি আপনার বোতামটির স্বচ্ছ ব্যাকগ্রাউন্ডের প্রয়োজন না হয় তবে আপনি ফ্রেম লেআউটটি ব্যবহার করে কোনও সীমানার একটি মায়া তৈরি করতে পারেন। সীমানার পুরুত্ব পরিবর্তন করতে কেবল ফ্রেমলাউটের "প্যাডিং" বৈশিষ্ট্যটি সামঞ্জস্য করুন।

<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>

আমি নিশ্চিত না যে শেপ এক্সএমএল ফাইলগুলির গতিময়-সম্পাদনাযোগ্য সীমানার রঙ রয়েছে কিনা। তবে আমি জানি যে এই সমাধানের সাহায্যে আপনি ফ্রেম-লেআউট ব্যাকগ্রাউন্ড সেট করে সীমান্তের রঙ পরিবর্তনশীল করতে পারেন।


6

আপনার এক্সএমএল লেআউটে:

<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();
        }
    });

5

আমি এটি প্রায় এক বছর দেরিতে জানি, তবে আপনি একটি 9 টি পথের চিত্রও তৈরি করতে পারেন এখানে এমন একটি সরঞ্জাম রয়েছে যা অ্যান্ড্রয়েড এসডিকে নিয়ে আসে যা এই জাতীয় চিত্র তৈরি করতে সহায়তা করে এই লিঙ্কটি দেখুন: http://developer.android.com/tools/help/draw9patch .html

PS: চিত্রটিও অসীমভাবে ছোট করে দেওয়া যায়

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