অ্যান্ড্রয়েড ইউআইতে গোলাকার আয়তক্ষেত্রটি কীভাবে আঁকবেন?


141

অ্যান্ড্রয়েড ইউআইতে আমার একটি বৃত্তাকার আয়তক্ষেত্র আঁকতে হবে। একই গোলাকার আয়তক্ষেত্রটি থাকা TextViewএবং EditTextএটি সহায়কও হবে।


একটি এই আলোচনা এ চেহারা আছে stackoverflow.com/questions/3646415/...
কার্তিক Domadiya

কমপক্ষে আপনার ছবিটি রাখা উচিত .. কারণ কেউ যদি একই প্রশ্নের চেয়ে তার চেয়ে বেশি বোঝা যায় তবে তা বোঝা সহজ।
হিমাংশু মরি

উত্তর:


215

আপনার বিন্যাসে এক্সএমএল নিম্নলিখিত করুন:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <solid android:color="@android:color/holo_red_dark" />

    <corners android:radius="32dp" />

</shape>

পরিবর্তন করে android:radiusআপনি কোণগুলির "ব্যাসার্ধ" এর পরিমাণ পরিবর্তন করতে পারেন।

<solid> অঙ্কনযোগ্য রঙ নির্ধারণ করতে ব্যবহৃত হয়।

আপনি প্রতিস্থাপন ব্যবহার করতে পারেন android:radiusসঙ্গে android:bottomLeftRadius, android:bottomRightRadius, android:topLeftRadiusএবং android:topRightRadiusপ্রতিটি কোনা ব্যাসার্ধ সংজ্ঞায়িত করতে।


তারা গ্রেডিয়েন্ট চেয়েছিল না। কেন এটি উত্তর গৃহীত তা জানেন না।
জেরি ডাস্ট্র্যাম্পস

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

125

আমি মনে করি, এটি আপনার ঠিক প্রয়োজন।

এখানে অঙ্কনযোগ্য (xML) ফাইল যা বৃত্তাকার আয়তক্ষেত্র তৈরি করে। round_rect_shape.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

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

    <corners
        android:bottomLeftRadius="8dp"
        android:bottomRightRadius="8dp"
        android:topLeftRadius="8dp"
        android:topRightRadius="8dp" />

</shape>

এখানে লেআউট ফাইল: my_layout.xML

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/round_rect_shape"
    android:orientation="vertical"
    android:padding="5dp" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Something text"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#ff0000" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <requestFocus />
    </EditText>
</LinearLayout>

-> উপরের কোডটিতে লিনিয়ারলআউটের পটভূমি রয়েছে (এটি গোলাকার আয়তক্ষেত্র তৈরি করতে মূল ভূমিকা)। সকলের জন্য বৃত্তাকার আয়তক্ষেত্র হিসাবে ব্যাকগ্রাউন্ড দেখতে আপনি সেই লিনিয়ারলআউটটিতে টেক্সটভিউ, এডিটটেক্সট ... এর মতো যে কোনও দৃশ্য রাখতে পারেন।


1
এটি বিমূর্ত করার উপায় আছে? আমি android:background="@drawable/round_rect_shape"আমার স্টাইলস.এক্সএমএল ব্যবহার করতে সক্ষম হতে চাই , তবে অন্য সম্পত্তি সেট করে বিভিন্ন ব্যাকগ্রাউন্ড রঙ ব্যবহার করতে চাই। প্রতিটি রঙের জন্য অভিন্ন অঙ্কন তৈরি করা ছাড়াও কী কোনও বিকল্প আছে?
কার্ল

আপনি যে কোনও আকারকে এভাবে গোল করে তুলতে পারেন!
সাব্রি মেভিş

22

ইন monodroid, আপনি বৃত্তাকার আয়তক্ষেত্রের জন্য এটির মতো করতে পারেন এবং তারপরে এটি প্যারেন্ট ক্লাস হিসাবে রেখে editboxঅন্য লেআউট বৈশিষ্ট্য যুক্ত করা যেতে পারে।

 class CustomeView : TextView
    {
       public CustomeView (Context context, IAttributeSet ) : base (context, attrs)  
        {  
        }
       public CustomeView(Context context, IAttributeSet attrs, int defStyle) : base(context, attrs, defStyle)  
        {  
        }
       protected override void OnDraw(Android.Graphics.Canvas canvas)
       {
           base.OnDraw(canvas);
           Paint p = new Paint();
           p.Color = Color.White;
           canvas.DrawColor(Color.DarkOrange);

           Rect rect = new Rect(0,0,3,3);

           RectF rectF = new RectF(rect);


           canvas.DrawRoundRect( rectF, 1,1, p);



       }  
    }
}

4
<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:padding="10dp"
  android:shape="rectangle">
    <solid android:color="@color/colorAccent" /> 
    <corners
      android:bottomLeftRadius="500dp"
      android:bottomRightRadius="500dp"
      android:topLeftRadius="500dp"
      android:topRightRadius="500dp" />
</shape>

এখন, আপনি কোন উপাদানটিতে এই আকারটি ব্যবহার করতে চান তা যুক্ত করুন: android:background="@drawable/custom_round_ui_shape"

"কাস্টম_উন্ড_উই_শ্যাপ" নামে আঁকতে একটি নতুন এক্সএমএল তৈরি করুন


1

গোলাকার আয়তক্ষেত্রের জন্য কার্ডভিউ ব্যবহার করুন । কার্ডভিউ আরও বেশি কার্যকারিতা দেয় যেমন কার্ডকর্নারিডিয়াস, কার্ডব্যাকগ্রাউন্ড কালার, কার্ডএলভিশন এবং আরও অনেক কিছু। কার্ডভিউ ইউআই আরও উপযুক্ত করে কাস্টম বৃত্তাকার আয়তক্ষেত্র আঁকবে।


1

আপনি মাত্র অঙ্কনযোগ্য ফোল্ডারে একটি নতুন এক্সএমএল ব্যাকগ্রাউন্ড নির্ধারণ করতে পারেন

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

এর পরে এটি ব্যাকগ্রাউন্ডে সংজ্ঞায়িত করে আপনার পাঠ্যদর্শন বা সম্পাদনা পাঠের মধ্যে অন্তর্ভুক্ত করুন।

<TextView
 android:id="@+id/textView"
 android:layout_width="0dp"
 android:layout_height="80dp"
 android:background="YOUR_FILE_HERE"
 Android:layout_weight="1"
 android:gravity="center"
 android:text="TEXT_HERE"
 android:textSize="40sp" />

0

অঙ্কনযোগ্যকে ডান ক্লিক করুন এবং উদাহরণ হিসাবে বাটন_ব্যাকগ্রাউন্ড.এক্সএমএল নামে নতুন লেআউট এক্সএমএল ফাইল তৈরি করুন। তারপরে নিম্নলিখিত কোডটি অনুলিপি করুন এবং আটকান। আপনি আপনার প্রয়োজন অনুযায়ী এটি পরিবর্তন করতে পারেন।

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="14dp" />
<solid android:color="@color/colorButton" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp" />
<size
android:width="120dp"
android:height="40dp" />
</shape>

এখন আপনি এটি ব্যবহার করতে পারেন।

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

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

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