কীভাবে একটি বোতামের কোণটি তৈরি করবেন?


456

আমি একটি buttonবৃত্তাকার কোণার করতে চাই । অ্যান্ড্রয়েড এ অর্জন করার কোন সহজ উপায় আছে?




11
এটি কোনও বিস্তৃত প্রশ্ন নয়, একেবারে বিন্দুতে। এটিকে "খুব বিস্তৃত" হিসাবে চিহ্নিত করা কেবলমাত্র একটি SO মানসিকতা যা পরিবর্তিত হওয়া দরকার। স্বৈরাচারী হওয়া বন্ধ করুন।
ব্যবহারকারী 734028

2
ব্যবহারকারীর সাথে একমত 73৩৪০৮২৮: কীভাবে হ্যাক খুব প্রশস্ত হওয়ার জন্য বন্ধ হয়ে গেছে ?? ওপি কীভাবে কোণার ব্যাসার্ধটিকে এন পিক্সেলে সেট করতে হয় তা যদি জিজ্ঞাসা করা হত তবে কেবলমাত্র এটিই আরও নির্দিষ্ট হতে পারে। চলে আসো!
nyholku

উত্তর:


679

আপনি যদি এই জাতীয় কিছু চান

বাটন পূর্বরূপ

এখানে কোড।

1. আপনার অঙ্কনযোগ্য ফোল্ডারে মাইবাটন.এক্সএমএল এর মতো একটি এক্সএমএল ফাইল তৈরি করুন এবং নিম্নলিখিত মার্কআপটি আটকে দিন:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true" >
        <shape android:shape="rectangle"  >
            <corners android:radius="3dip" />
            <stroke android:width="1dip" android:color="#5e7974" />
            <gradient android:angle="-90" android:startColor="#345953" android:endColor="#689a92"  />            
        </shape>
    </item>
    <item android:state_focused="true">
        <shape android:shape="rectangle"  >
            <corners android:radius="3dip" />
            <stroke android:width="1dip" android:color="#5e7974" />
            <solid android:color="#58857e"/>       
        </shape>
    </item>  
    <item >
       <shape android:shape="rectangle"  >
            <corners android:radius="3dip" />
            <stroke android:width="1dip" android:color="#5e7974" />
            <gradient android:angle="-90" android:startColor="#8dbab3" android:endColor="#58857e" />            
       </shape>
    </item>
</selector>

২.এখন আপনার দৃশ্যের পটভূমির জন্য এই অঙ্কনযোগ্য ব্যবহার করুন। ভিউটি যদি বোতাম হয় তবে এর মতো কিছু:

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:textColor="#ffffff"
    android:background="@drawable/mybutton"
    android:text="Buttons" />

এটি ক্র্যাশ হয়েছে: এর দ্বারা তৈরি: org.xmlpull.v1.XMLPullParserException: বাইনারি এক্সএমএল ফাইল লাইন # 24: <item> ট্যাগের জন্য একটি 'অঙ্কনযোগ্য' বৈশিষ্ট্য বা চাইল্ড ট্যাগের জন্য একটি
অঙ্কনীয়কে

3
আমরা কি এই প্রোগ্রামটিমেটিকভাবে করতে পারি?
খুনি

এটি বলেছে এলিমেন্ট সিলেক্টরকে অবশ্যই এডিআইটি হিসাবে ঘোষণা করতে হবে: দুঃখিত, ফাইলটি অঙ্কনের পরিবর্তে মান ফোল্ডারের ভিতরে ছিল। আমি যখন এটি স্থানান্তরিত করেছি, এটি কাজ করেছিল।
F0r3v3r-A-N00b

ক্লিকে ছায়া তৈরি করে কী? আমি নীচে ছায়ার প্রস্থ হ্রাস করার চেষ্টা করছি ... ভাগ্য নেই
নেভিল নাজিরেন

নির্বাচকরা কীভাবে কোডিং করা হয় তা কীভাবে বোতামের কোণে কোডিং করা উচিত তা ব্যাখ্যা করার সাথে আমি কী দেখছি তা দেখছি না।
ট্যাভারসেন্সস

344

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

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="10dp">
    <!-- you can use any color you want I used here gray color-->
    <solid android:color="#ABABAB"/> 
    <corners android:radius="10dp"/>
</shape>

আপনি কোণগুলি বৃত্তাকার করতে চান বাটনে ব্যাকগ্রাউন্ড হিসাবে এটি প্রয়োগ করুন।

অথবা আপনি নীচের মতো প্রতিটি কোণার জন্য পৃথক ব্যাসার্ধ ব্যবহার করতে পারেন

android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp"

57
আপনি কেবল অ্যান্ড্রয়েডে কোণগুলি ছোট করতে পারেন: ব্যাসার্ধ = "10 ডিপি", যা সবার জন্য প্রযোজ্য
বেন সিম্পসন

22
এটি সম্পূর্ণ সমাধান নয় কারণ এটি বিভিন্ন বোতামের রাজ্যগুলিকে সমর্থন করে না (চাপ দেওয়া, ফোকাসড, ডিফল্ট)। ভাল সমাধান দেখুন stackoverflow.com/questions/9334618/rounded-button-android
JosephL

3
@ বেনসিম্পসন, আপনি দেখতে পাবেন যে যখন আপনি প্রতিটি কোণার পৃথক পৃথকভাবে সংজ্ঞা না দিয়ে কেবল একটি লাইন রেখেছেন তখন আকারের মধ্যে পার্থক্য রয়েছে।
গারিমা তিওয়ারি

এটি হাইলাইট করা উত্তরের চেয়ে আরও নিখুঁতভাবে কাজ করে। আপনাকে এক মিলিয়ন ধন্যবাদ!
ড্যান লিনহ

37

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

button_background.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/primary" />
    <corners android:radius="5dp" />
</shape>

আপনার বোতামে ব্যাকগ্রাউন্ড সেট করুন:

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/button_background"/>

30

অঙ্কনযোগ্য ফোল্ডারে আকৃতি.এক্সএমএল তৈরি করুন

আকৃতি.এক্সএমএল মত

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
  <stroke android:width="2dp"
    android:color="#FFFFFF"/>
  <gradient 
    android:angle="225"
    android:startColor="#DD2ECCFA"
    android:endColor="#DD000000"/>
<corners
    android:bottomLeftRadius="7dp"
    android:bottomRightRadius="7dp"
    android:topLeftRadius="7dp"
   android:topRightRadius="7dp" />
</shape>

এবং myactivity.xML এ

তুমি ব্যবহার করতে পার

<Button
    android:id="@+id/btn_Shap"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:text="@string/Shape"
    android:background="@drawable/shape"/>

16

MyButton.xML ফাইলটি তৈরি করুন

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/colorButton"/>
    <corners android:radius="10dp"/>
</shape>

আপনার বোতামে যোগ করুন

 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/myButton"/>

16

অ্যান্ড্রয়েড এ অর্জন করার কোন সহজ উপায় আছে?

হ্যাঁ, আজ আছে, এবং এটি খুব সাধারণ।
শুধু ব্যবহার MaterialButtonমধ্যে উপাদান উপাদান গ্রন্থাগার সঙ্গে app:cornerRadiusঅ্যাট্রিবিউট।

কিছুটা এইরকম:

    <com.google.android.material.button.MaterialButton
        android:text="BUTTON"
        app:cornerRadius="8dp"
        ../>

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

বৃত্তাকার কোণগুলির সাথে একটি বোতাম পাওয়ার জন্য এটি যথেষ্ট।

আপনি যেকোন একটি ম্যাটেরিয়াল বোতাম শৈলী ব্যবহার করতে পারেন । উদাহরণ স্বরূপ:

<com.google.android.material.button.MaterialButton
    style="@style/Widget.MaterialComponents.Button.OutlinedButton"
    .../>

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

এছাড়াও সংস্করণ থেকে শুরু 1.1.0 আপনার কাছে পরিবর্তন করতে পারেন আকৃতি আপনার বোতাম। shapeAppearanceOverlayবোতাম শৈলীতে কেবল বৈশিষ্ট্যটি ব্যবহার করুন :

  <style name="MyButtonStyle" parent="Widget.MaterialComponents.Button">
    <item name="shapeAppearanceOverlay">@style/ShapeAppearanceOverlay.MyApp.Button.Rounded</item>
  </style>

  <style name="ShapeAppearanceOverlay.MyApp.Button.Rounded" parent="">
    <item name="cornerFamily">rounded</item>
    <item name="cornerSize">16dp</item>
  </style>

তারপরে কেবল ব্যবহার করুন:

<com.google.android.material.button.MaterialButton
   style="@style/MyButtonStyle"
   .../>

আপনি shapeAppearanceOverlayএক্সএমএল লেআউটে এটি প্রয়োগ করতে পারেন :

<com.google.android.material.button.MaterialButton
   app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.MyApp.Button.Rounded"
   .../>

shapeAppearanceপ্রতিটি কোনা জন্য বিভিন্ন আকৃতি এবং মাত্রা আছে এছাড়াও অনুমতি দেয়:

<style name="ShapeAppearanceOverlay.MyApp.Button.Rounded" parent="">
    <item name="cornerFamily">rounded</item>
    <item name="cornerFamilyTopRight">cut</item>
    <item name="cornerFamilyBottomRight">cut</item>
    <item name="cornerSizeTopLeft">32dp</item>
    <item name="cornerSizeBottomLeft">32dp</item>
</style>

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



@ ভ্ল্যাড হ্যাঁ, উপাদান উপাদানগুলির জন্য একটি উপাদান থিম প্রয়োজন।
গ্যাব্রিয়েল মারিয়োটি

11

আমি যে সহজ উপায়টি আবিষ্কার করেছি তা হ'ল অঙ্কনযোগ্য ফোল্ডারে একটি নতুন এক্সএমএল ফাইল তৈরি করা এবং তারপরে বোতামগুলির পটভূমিটি সেই এক্সএমএল ফাইলটিতে নির্দেশ করা। আমার ব্যবহৃত কোডটি এখানে:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">

<solid android:color="#ff8100"/>
<corners android:radius="5dp"/>

</shape>

3
কাস্টম অঙ্কনযোগ্য পটভূমিতে ম্যাটেরিয়াল-থিম রিপল প্রভাবটি পুনরুদ্ধার করতে, android:foreground="?attr/selectableItemBackground"বোতাম ভিউতে যুক্ত করুন। স্ট্যাকওভারফ্লো.com
মিস্টার-আইডিই

11

অঙ্কনযোগ্য ফোল্ডারে গোলাকার_বিটিএন.এক্সএমএল ফাইল তৈরি করুন ...

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
     <solid android:color="@color/#FFFFFF"/>    

     <stroke android:width="1dp"
        android:color="@color/#000000"
        />

     <padding android:left="1dp"
         android:top="1dp"
         android:right="1dp"
         android:bottom="1dp"
         /> 

     <corners android:bottomRightRadius="5dip" android:bottomLeftRadius="5dip" 
         android:topLeftRadius="5dip" android:topRightRadius="5dip"/> 
  </shape>

এবং এই.এমএমএল ফাইলটিকে একটি বোতামের পটভূমি হিসাবে ব্যবহার করুন

<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/rounded_btn"
android:text="Test" />

7

এই লিঙ্কটিতে আপনার প্রয়োজনীয় সমস্ত তথ্য রয়েছে। এখানে

Shape.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape      xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">

    <solid   android:color="#EAEAEA"/>

    <corners    android:bottomLeftRadius="8dip"
                android:topRightRadius="8dip"
                android:topLeftRadius="1dip"
                android:bottomRightRadius="1dip"
                />
</shape>

এবং main.xml

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

    <TextView   android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Hello Android from NetBeans"/>

    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nishant Nair"
            android:padding="5dip"
            android:layout_gravity="center"
            android:background="@drawable/button_shape"
            />
</LinearLayout>

এটি আপনাকে আপনার পছন্দসই ফলাফল দেয়।

শুভকামনা করছি


6

আইকন সহ শৈলী বোতাম এখানে চিত্র বর্ণনা লিখুন

   <Button
        android:id="@+id/buttonVisaProgress"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="5dp"
        android:background="@drawable/shape"
        android:onClick="visaProgress"
        android:drawableTop="@drawable/ic_1468863158_double_loop"
        android:padding="10dp"
        android:text="Visa Progress"
        android:textColor="@android:color/white" />

shape.xml

    <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="14dp" />
<gradient
    android:angle="45"
    android:centerColor="#1FA8D1"
    android:centerX="35%"
    android:endColor="#060d96"
    android:startColor="#0e7e1d"
    android:type="linear" />
<padding
    android:bottom="0dp"
    android:left="0dp"
    android:right="0dp"
    android:top="0dp" />
<size
    android:width="270dp"
    android:height="60dp" />
<stroke
    android:width="3dp"
    android:color="#000000" />


4

আপনি যদি ভেক্টর ড্রয়াবল ব্যবহার করে থাকেন তবে আপনাকে আপনার আঁকতে সক্ষম সংজ্ঞায় কেবল একটি <corners> উপাদান নির্দিষ্ট করতে হবে। আমি এটি একটি ব্লগ পোস্টে কভার করেছি ।

আপনি যদি বিটম্যাপ / 9-প্যাচ ড্রয়াবল ব্যবহার করছেন তবে আপনাকে বিটম্যাপ চিত্রের স্বচ্ছতার সাথে কোণগুলি তৈরি করতে হবে।


0

অঙ্কনযোগ্য ফোল্ডার

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#FFFFFF"/>
    <corners android:radius="30dp"/>
    <stroke android:width="2dp" android:color="#999999"/>
</shape>

বিন্যাস ফোল্ডার

<Button
    android:id="@+id/button2"
    <!-- add style to avoid square background -->
    style="@style/Widget.AppCompat.Button.Borderless"
    android:background="@drawable/corner_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />

স্কোয়ার পটভূমি এড়াতে শৈলী যুক্ত করার বিষয়টি নিশ্চিত করুন

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