আমি কীভাবে কোনও অ্যান্ড্রয়েড লিনিয়ারলআউটকে ঘিরে একটি বর্ডার তৈরি করতে পারি?


113

আমার একটি বড় লেআউট আছে এবং এর ভিতরে একটি ছোট লেআউট রয়েছে।

আমি কীভাবে ছোট লেআউটের চারপাশে একটি লাইন বর্ডার তৈরি করব?


উত্তর:


241

অবশ্যই। আপনি যে কোনও বিন্যাসে একটি সীমানা যুক্ত করতে পারেন। মূলত, আপনার একটি কাস্টম অঙ্কনযোগ্য তৈরি করতে হবে এবং এটি আপনার বিন্যাসে একটি পটভূমি হিসাবে যুক্ত করতে হবে। উদাহরণ:

customborder.xmlআপনার অঙ্কনযোগ্য ফোল্ডারে কল করা একটি ফাইল তৈরি করুন :

<?xml version="1.0" encoding="UTF-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
   <corners android:radius="20dp"/> 
   <padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp"/>
   <stroke android:width="1dp" android:color="#CCCCCC"/>
 </shape>

এখন এটি আপনার ছোট লেআউটে ব্যাকগ্রাউন্ড হিসাবে প্রয়োগ করুন:

<LinearLayout android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/customborder">

কৌতুক করা উচিত।

আরও দেখুন:


29
<সলিড> আয়তক্ষেত্রে রঙ পূরণ করবে। আপনার কেবল সীমানা আঁকতে পরিবর্তে <স্ট্রোক> ব্যবহার করা দরকার।
নাইটফিউরি

1
আমার কৌশলটি <পেডিং> আসলে আমার আকৃতিটি কেন কাজ করে না তা খুঁজে পেতে আমাকে কিছুটা সময় নিয়েছিল। প্যাডিংয়ের সাথে এটি দুর্দান্ত কাজ করে।
জন

3
উভয় <solid/>এবং <stroke/>পুরো আয়তক্ষেত্র পূরণ? এটি কি আমার কোডের একটি বাগ?
এমআর

13
<স্ট্রোক অ্যান্ড্রয়েড: প্রস্থ = "1 ডিপ" অ্যান্ড্রয়েড: রঙ = "# সিসিসিসিসি" "> যুক্ত করুন, এটি ঠিক আছে।
পিয়েরি

1
পিয়েরির মন্তব্য এই উত্তরটিকে সঠিক করে তুলেছে। অন্যথায় আপনি কেবল একটি পূর্ণ পূর্ণ পটভূমি পেতে পারেন।
কাগগার

25

নিম্নরূপে অঙ্কনযোগ্য ফোল্ডারে XML নামক XML তৈরি করুন:

<?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item> 
    <shape android:shape="rectangle">
      <solid android:color="#FF0000" /> 
    </shape>
  </item>   
    <item android:left="5dp" android:right="5dp"  android:top="5dp" >  
     <shape android:shape="rectangle"> 
      <solid android:color="#000000" />
    </shape>
   </item>    
 </layer-list>

তারপরে এটিকে ব্যাকগ্রাউন্ড হিসাবে রৈখিক বিন্যাসে যুক্ত করুন:

     android:background="@drawable/border"

11

এটা চেষ্টা কর:

উদাহরণস্বরূপ, আসুন রেজ / ড্রয়যোগ্য / মাই_কাস্টম_ব্যাকগ্রাউন্ড.এক্সএমএল হিসাবে সংজ্ঞা দিন:

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

  <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <stroke android:width="2dp" android:height="2dp"
                android:color="#FF0000" />
            <solid android:color="#000000" />
            <padding android:left="1dp" android:top="1dp" android:right="1dp"
                android:bottom="1dp" />

            <corners android:radius="1dp" android:bottomRightRadius="5dp"
                android:bottomLeftRadius="0dp" android:topLeftRadius="5dp"
                android:topRightRadius="0dp" />
        </shape>
    </item>

</layer-list>

main.xml

<LinearLayout 
    android:layout_gravity="center"
    android:layout_width="200dp" 
    android:layout_height="200dp"   
    android:background="@drawable/layout_border" />
</LinearLayout>

11

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

<stroke
    android:width="2dp"
    android:color="#B40404" />

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

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

এখন আপনার ছোট লেআউট ব্যাকগ্রাউন্ডে এই এক্সএমএল কল করুন

অ্যান্ড্রয়েড: পটভূমি = "@ অঙ্কনযোগ্য / yourxml"


এলিমেন্ট স্ট্রোকের অনুমতি এখানে নেই।
hdavidzhu

3

এই সমাধানটি কেবল সীমানা যুক্ত করবে, লিনিয়ারলআউটের শরীর স্বচ্ছ হবে।

প্রথমে অঙ্কনযোগ্য ফোল্ডারে এই সীমানাটি অঙ্কনযোগ্য তৈরি করুন, border.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android= "http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <stroke android:width="2dp" android:color="#ec0606"/>
    <corners android:radius="10dp"/>
</shape>

তারপরে, আপনার লিনিয়ারলআউট ভিউতে, এই জাতীয় পটভূমি হিসাবে সীমানা.এক্সএমএল যুক্ত করুন

<LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/border">

3

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

  GradientDrawable gradientDrawable=new GradientDrawable();
   gradientDrawable.setStroke(4,getResources().getColor(R.color.line_Input));

তারপরে লেআউটের পটভূমিটি সেট করুন:

LinearLayout layout = (LinearLayout ) findViewById(R.id.ayout); layout .setBackground(gradientDrawable);

3

আমি অন্যান্য উত্তরের সাথে অ্যান্ড্রয়েড ডক্স লিঙ্ক যুক্ত করব।

https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

এটি শেপ ড্রয়যোগ্য এবং strokeবর্ডার সেট করার জন্য তাদের মধ্যে সমস্ত বৈশিষ্ট্য বর্ণনা করে।

উদাহরণ:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
  <stroke android:width="1dp" android:color="#F00"/>
  <solid android:color="#0000"/>
</shape>

স্বচ্ছ পটভূমি সহ লাল সীমানা।


শক্ত অংশটি কেবল সীমানায় রঙিন সেটিংয়ের অনুমতি দেয়। +1
aksh1618

0

একটি অঙ্কনযোগ্য সংস্থান তৈরি করতে চান না?

  <FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/black"
    android:minHeight="128dp">

    <FrameLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_margin="1dp"
      android:background="@android:color/white">

      <TextView ... />
    </FrameLayout>
  </FrameLayout>

0

আপনার পুনরায় / আঁকতে এটি চেষ্টা করুন

    <?xml version="1.0" encoding="UTF-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
  <shape
    android:shape="rectangle">
    <padding android:left="15dp"
        android:right="15dp"
        android:top="15dp"
        android:bottom="15dp"/>
    <stroke android:width="10dp"
        android:color="@color/colorPrimary"/>
  </shape>
</item><item android:left="-5dp"
        android:right="-5dp"
        android:top="-5dp"
        android:bottom="-5dp">
  <shape android:shape="rectangle">
    <solid android:color="@color/background" />
  </shape></item></layer-list>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.