কোনও অ্যান্ড্রয়েড ভিউয়ের উপরে এবং নীচে সীমানা যুক্ত করার কোনও সহজ উপায় আছে?


407

আমার কাছে একটি টেক্সটভিউ রয়েছে এবং আমি এর শীর্ষ এবং নীচের সীমানা বরাবর একটি কালো সীমানা যুক্ত করতে চাই। আমি যোগ চেষ্টা android:drawableTopএবং android:drawableBottomTextView, কিন্তু যে শুধুমাত্র সমগ্র দৃশ্য কালো পরিণত হত।

<TextView
    android:background="@android:color/green"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:drawableTop="@android:color/black"
    android:drawableBottom="@android:color/black"
    android:text="la la la" />

অ্যান্ড্রয়েডে একটি ভিউতে (বিশেষত, একটি টেক্সটভিউ) সহজেই শীর্ষ এবং নীচের সীমানা যুক্ত করার কোনও উপায় আছে?


2
অবাক করা কেউই বিভাজনটির কথা উল্লেখ করেন নি ! এই জিনিসটি অ্যান্ড্রয়েড দ্বারা তৈরি করা হয়েছে, ভাল, উল্লম্ব বিভাজক অর্জন করতে। আর সহজ হতে পারে না এবং আপনি অ্যান্ড্রয়েড স্টুডিওতে "ডিজাইন" WYSIWYG প্যানেলে সবকিছু করেন panel
ফ্যাটি

নোট dividerVertical এপিআই 11. বাস্তবায়িত হয়েছিল
Jpm

1
সম্ভবত আপনি কীভাবে ডিভাইডার ভার্টিকাল ব্যবহার করবেন তা দেখাতে পারেন?
androidguy

উত্তর:


430

অ্যান্ড্রয়েড ২.২ এ আপনি নিম্নলিখিতগুলি করতে পারেন।

একটি এক্সএমএল অঙ্কনযোগ্য যেমন /res/drawable/textlines.xML তৈরি করুন এবং এটি একটি টেক্সটভিউয়ের পটভূমির সম্পত্তি হিসাবে নির্ধারণ করুন।

<TextView
android:text="My text with lines above and below"
android:background="@drawable/textlines"
/>

/res/drawable/textlines.xml

<?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="1dp" android:color="#FF000000" />
            <solid android:color="#FFDDDDDD" />

        </shape>
   </item>

   <item android:top="1dp" android:bottom="1dp"> 
      <shape 
        android:shape="rectangle">
            <stroke android:width="1dp" android:color="#FFDDDDDD" />
            <solid android:color="#00000000" />
        </shape>
   </item>

</layer-list>

এর নীচের দিকটি হ'ল আপনাকে একটি অস্বচ্ছ পটভূমির রঙ নির্দিষ্ট করতে হবে, কেননা পরিবহনের কাজগুলি কাজ করবে না। (কমপক্ষে আমি ভেবেছিলাম তারা করেছে তবে আমার ভুল ছিল)। উপরের উদাহরণে আপনি দেখতে পাচ্ছেন যে প্রথম আকারের শক্ত রঙ #FFdddddd ২ য় আকারের স্ট্রোক রঙে অনুলিপি করা হয়েছে।


11
: এছাড়াও এই সমাধান, যা TextViews জন্য কাজ করে, আপনি একটি সীমান্ত চারদিকে চান তা দেখতে stackoverflow.com/questions/3263611/...
emmby

26
android:color="@null"অস্বচ্ছ পটভূমির সমস্যা এড়াতে ব্যবহার করার চেষ্টা করুন ।
ম্যাট ব্রায়ানন

@ এমএমবি: ট্যাবলেটে এই কোডটি পরীক্ষা করার সময়, স্ক্রিনে রেন্ডার করতে সময় লাগে, যখন আমি স্ক্রোল করব তখন 1 সেকেন্ড সীমানা প্রদর্শিত হবে
চেতন

5
অ্যান্ড্রয়েড: রঙ = "@ নাল" কৌশলটি স্বচ্ছতা বজায় রাখার জন্য এবং দর্শনটির একপাশে কেবল সীমানা প্রদর্শনের জন্য আমার পক্ষে কৌশলটি করেনি। ব্যবহারকারী 1051892 এর উত্তর নীচে কাজটি করেছেন!
রিক পাস্তুর

8
এই সমাধানটি বাম এবং ডানদিকেও একটি সীমানা তৈরি করেছে - যদিও এটি একটি পাতলা।
অ্যালিক্লিজিন-কিলাকা

279

আমি একটি কৌশল ব্যবহার করেছি যাতে ধারকটির বাইরে সীমানা প্রদর্শিত হয়। এই কৌশলটি দিয়ে কেবল একটি রেখা টানা থাকে যাতে পটভূমি অন্তর্নিহিত দৃশ্যের প্রদর্শিত হবে।

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

            <solid android:color="#00FFFFFF" />

            <padding android:left="10dp"
                android:right="10dp"
                android:top="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

</layer-list>

3
লাইনটি কিছুটা পাতলা করার জন্য কয়েকটি টুইটের মাধ্যমে এটি আমার পক্ষে দুর্দান্ত কাজ করেছে।
জেফ

1
খুব সুন্দর কৌশল, যদিও কাজটি করতে কম্পিউটারটিকে চালিত করতে না পারলে এটি খুব সুন্দর হতে পারে।
ইউকিও ফুকুজাওয়া

সুন্দরভাবে সম্পন্ন! আপনার যা দেখা উচিত তা হ'ল আইটেমের বাম, উপরের, ডানদিকে, নীচে হওয়া উচিত - (স্ট্রোকের প্রস্থ) ডিপি
Asakura89

কোনও সীমানা দেখায় নি - কেবল আমার দেখার সামগ্রীটিকে আরও ছোট
দেখায়

1
সুন্দরভাবে সম্পন্ন হয়েছে, স্বচ্ছ পটভূমিতে কাজ করেছে। ২.২ এবং ৪.৪.২ এ পরীক্ষা করা হয়েছে। এর মধ্যে
সমস্তটি

97

বিকল্প 1: শেপ ড্রয়যোগ্য

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

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

    <solid android:color="#8fff93" />

    <stroke
        android:width="1px"
        android:color="#000" />

</shape>

আপনি solidপূরণ করতে না চাইলে আপনি এটি সরাতে পারেন। background="@drawable/your_shape_drawable"আপনার লেআউট / ভিউয়ের সেট ।

বিকল্প 2: পটভূমি দেখুন

এখানে আমি একটি ছোট কৌশল ব্যবহার করেছি RelativeLayout। মূলত আপনি একটি সীমানা দিতে চান এমন দৃশ্যের নীচে একটি কালো বর্গক্ষেত্র রয়েছে এবং তারপরে সেই দৃশ্যটি কিছু প্যাডিং (মার্জিন নয়!) দিন যাতে কালো বর্গটি প্রান্তগুলির মধ্য দিয়ে দেখায়।

স্পষ্টতই এটি কেবলমাত্র সঠিকভাবে কাজ করে যদি দৃশ্যের কোনও স্বচ্ছ অঞ্চল না থাকে। যদি এটি করে তবে আমি আপনাকে এমন একটি কাস্টম লেখার পরামর্শ দিচ্ছি BorderViewযা কেবল সীমানা আঁকবে - এটি কোডের কয়েক ডজন লাইন হওয়া উচিত।

<View
    android:id="@+id/border"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/image"
    android:layout_alignLeft="@+id/image"
    android:layout_alignRight="@+id/image"
    android:layout_alignTop="@+id/main_image"
    android:background="#000" />

<ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_...
    android:padding="1px"
    android:src="@drawable/..." />

আপনি হতাশ করছি, এটা করে দিয়ে কাজ adjustViewBounds=true। তবে, আপনি পুরোপুরি একটি পটভূমি রাখতে চাইলে এটি কাজ করে না RelativeLayout, কারণ একটি বাগ রয়েছে যা আপনাকে একটি RelativeLayoutদিয়ে পূর্ণ করা বন্ধ করে দেয় View। সেক্ষেত্রে আমি ছবি Shapeআঁকার প্রস্তাব দিই ।

বিকল্প 3: 9-প্যাচ

একটি চূড়ান্ত বিকল্পটি এই জাতীয় 9-প্যাচের মতো অঙ্কনযোগ্য ব্যবহার করতে হবে:

আপনি সেট করতে পারেন এমন যে কোনও দৃশ্যে এটি ব্যবহার করতে পারেন android:background="@drawable/..."। এবং হ্যাঁ এটি 6x6 হওয়া দরকার - আমি 5x5 চেষ্টা করেছিলাম এবং এটি কার্যকর হয়নি।

এই পদ্ধতির অসুবিধাটি হ'ল আপনি রঙগুলি খুব সহজেই পরিবর্তন করতে পারবেন না, তবে যদি আপনি অভিনব সীমানাগুলি চান (উদাহরণস্বরূপ উপরে এবং নীচে কেবল একটি সীমানা, যেমন এই প্রশ্নে) তবে আপনি Shapeআঁকতে সক্ষম হয়ে উঠতে পারবেন না , যা খুব শক্তিশালী নয়।

বিকল্প 4: অতিরিক্ত দর্শন

আপনি যদি কেবলমাত্র নিজের দৃষ্টির উপরে এবং নীচে সীমানা চান তবে আমি এই সত্যিই সহজ বিকল্পটি উল্লেখ করতে ভুলে গিয়েছি। আপনি আপনার দৃষ্টিভঙ্গিটি উল্লম্ব স্থানে LinearLayoutরাখতে পারেন (যদি এটি ইতিমধ্যে না থাকে) এবং তারপরে Viewনীচে এবং এর নীচে এটি খালি যুক্ত করুন :

<View android:background="#000" android:layout_width="match_parent" android:layout_height="1px"/>

4
9 টি প্যাচ এবং আকৃতি আঁকার উপযুক্ত, তবে আমি এই জাতীয় সমস্যা সমাধানের জন্য ভিউ বা চিত্রদর্শন যুক্ত করার বিরুদ্ধে সুপারিশ করব। কারণ হ'ল লেআউট পুনর্নির্মাণ এবং অ্যানিমেশন উন্নত করতে আপনার লেআউটগুলি থেকে এ জাতীয় অনেকগুলি <উপাদান> সরানো উচিত। আমি এখনই এগুলি ছড়িয়ে দেব এবং বিকল্প 1 বা 2 এর অনুরূপ কিছু বাস্তবায়ন করব
এমিল

2
@ এমাইল এটি সত্য, তবে আপনি যদি এমন একটি কাস্টম তালিকাভিউ ব্যবহার করেন যা ডিভাইডারদের সমর্থন করে না তবে একটি সাধারণ দৃশ্য ভাল। পারফরম্যান্সের প্রভাবটি শূন্যের পাশে, বিশেষত যদি আপনি নিজের বিন্যাসের গভীরতা নিচে রাখার বিষয়ে নিশ্চিত হন। এটি ডিভাইস জুড়ে তালিকাভুক্ত বিভাজকের সাথে বাগগুলিও নিষ্ক্রিয় করে (আমি এমন কিছু ডিভাইস দেখেছি যা এই সম্পত্তিটিকে উপেক্ষা করে)।
টম

আপনি ভিডবায়আইডিতে কল করার সংখ্যা কমাতে এটি নিশ্চিত করার জন্য তালিকাগুলির সাথে দক্ষ ভিউহোল্ডার প্যাটার্নটিও ব্যবহার করতে পারেন যা প্রায়শই দুর্বল তালিকার কার্যক্ষমতার কারণ।
এমিল

আইওএসে আপনার এটি করার একমাত্র উপায় আছে। অ্যান্ড্রয়েডে আপনার কমপক্ষে চারটি পরীক্ষা করা উচিত, আমার ক্ষেত্রে বিকল্পটি 4 যাওয়ার উপায় ছিল। কখনও কখনও ব্যাকগ্রাউন্ড রেন্ডার হিসাবে পটভূমি হিসাবে অঙ্কনযোগ্য, এটি সচেতন থাকুন।
রাতটা টাটা

1
অ্যান্ড্রয়েডের কাছে এই জাতীয় জিনিসগুলির সহজ সমাধান কেন হয়নি? এইচটিএমএল, সিএসএস, বা জাভাএফএক্স, ডাব্লুপিএফ এর মতো অন্য ভাষার মতো ......
আসিফ মোশতাক

95

1dpকেবল নীচে একটি সাদা সীমানা যুক্ত করতে এবং স্বচ্ছ পটভূমি পেতে আপনি নীচেরটি ব্যবহার করতে পারেন যা এখানে বেশিরভাগ উত্তরের চেয়ে সহজ।

জন্য TextViewবা অন্যান্য দৃশ্য অ্যাড:

android:background="@drawable/borderbottom"

এবং drawableডিরেক্টরিতে নিম্নলিখিত XML যোগ করুন, বলা হয়borderbottom.xml

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

আপনি উপরের একটি সীমানা চান, পরিবর্তন android:top="-2dp"করার জন্যandroid:bottom="-2dp"

রঙ সাদা হতে হবে না এবং পটভূমিটিও স্বচ্ছ হওয়ার দরকার নেই।

solidউপাদান প্রয়োজন হয় না হতে পারে। এটি আপনার নকশার উপর নির্ভর করবে (ধন্যবাদ ভি। কলিজাঘন্যু)।

মূলত, এই এক্সএমএলটি আয়তক্ষেত্রাকার আকৃতিটি ব্যবহার করে একটি সীমানা তৈরি করবে, তবে তারপরে আকারের জন্য রেন্ডার ক্ষেত্রের বাইরে শীর্ষ, ডান এবং বাম দিকে ঠেলা দেবে। এটি ঠিক নীচের সীমানা দৃশ্যমান ছেড়ে দেয়।


8
এটি সর্বোত্তম সমাধান, কারণ এটি অন্যদের মতো ওভারড্রোল তৈরি করে না
গ্রেগ এনিস

নেতিবাচক অবস্থানগুলি ( -2dpবনাম 1dp) এর সাথে স্ট্রোকের চেয়ে দ্বিগুণ বড় হওয়ার কোনও কারণ আছে কি ? যখন তারা পরিমাণে ( -1এবং 1) সমান হয় তখন কাজ করে মনে হয় ।
ডেনিস নিয়াজহেভ

@ ডেনিসকনিয়াজেভ: -2dpফলাফলটি ব্যবহার করার সময় সর্বদা পরিষ্কার ছিল। আমি মনে করি পরীক্ষার কেস ছিল যেখানে ফলাফল পরিষ্কার ছিল না। আমি মনে করতে পারি না এটি কম বা উচ্চ ঘনত্বের স্ক্রিন বা অ্যান্ড্রয়েডের পুরানো সংস্করণ (২.x সম্ভবত) ছিল কিনা।
টিগার

মজাদার. আপনি কি জানেন যে এটি যদি কোনও সাধারণ ক্ষেত্রে হয় তবে উদাহরণস্বরূপ যদি আমি 4dpস্ট্রোক প্রস্থের জন্য ব্যবহার করি তবে আমার -8dpঅবস্থানের জন্য ব্যবহার করা উচিত ?
ডেনিস নাইয়াজেভ

1
@ ডেনিসকিনিয়াজেভ: (স্মৃতি থেকে) এটি দেখতে ভাসমান পয়েন্ট গণনার মতো মনে হয়েছিল যা কেবল সামান্য থেকে বড় বা ছোট ছিল। এর অর্থ একটি -5dpপ্রস্থের মানের সাথে প্রয়োজনীয় সমস্ত মান 4pd। ভাসমান মানের অসম্পূর্ণতাটি পাওয়ার জন্য এটি কেবল কিছুটা বড় হওয়া দরকার।
টিগার

36

বর্তমানে গৃহীত উত্তর কার্যকর হয় না। এটি অ্যান্টি-এলিয়জিংয়ের ফলাফল হিসাবে ভিউয়ের বাম এবং ডানদিকে পাতলা উল্লম্ব সীমানা তৈরি করে।

এই সংস্করণ পুরোপুরি কাজ করে। এটি আপনাকে সীমানা প্রস্থকে স্বাধীনভাবে সেট করার অনুমতি দেয় এবং আপনি চাইলে বাম / ডানদিকেও সীমানা যুক্ত করতে পারেন। একমাত্র অপূর্ণতা এটি স্বচ্ছতা সমর্থন করে না।

/res/drawable/top_bottom_borders.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="#DDDD00" /> <!-- border color -->
        </shape>
    </item>

    <item
        android:bottom="1dp" 
        android:top="1dp">   <!-- adjust borders width here -->
        <shape android:shape="rectangle">
            <solid android:color="#FFFFFF" />  <!-- background color -->
        </shape>
    </item>
</layer-list>

মার্শমেলোর মাধ্যমে অ্যান্ড্রয়েড কিটকেটে পরীক্ষিত


কিভাবে ভিতরে স্বচ্ছ করতে?
हितেশ সাহু

1
@ হিটেশ সাহু আমার মনে হয় এর খারাপ দিকটি হ'ল আপনাকে এখানে উইজেটের পটভূমির সাথে লেআউটের পটভূমির সাথে মিল রাখতে হবে
chntgomez

35

সুতরাং আমি কিছুটা আলাদা কিছু করতে চেয়েছিলাম: কেবলমাত্র তালিকাগুলির বিভাজক অনুকরণ করতে নীচে একটি সীমানা। আমি পিট ডেলপোর্টের উত্তরটি পরিবর্তন করেছি এবং এটি পেয়েছি:

<?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="@color/background_trans_light" />    

        </shape>
   </item>

    <!-- this mess is what we have to do to get a bottom border only. -->
   <item android:top="-2dp"
         android:left="-2dp"
         android:right="-2dp"
         android:bottom="1px"> 
      <shape 
        android:shape="rectangle">    
            <stroke android:width="1dp" android:color="@color/background_trans_mid" />
            <solid android:color="@null" />
        </shape>
   </item>

</layer-list>

ঠিক 1 পিক্সেল ডিভাইডার পেতে dp এর পরিবর্তে px ব্যবহার করে নোট করুন (কিছু ফোন ডিপিআই একটি 1 ডিপি লাইন অদৃশ্য হয়ে যাবে)।


2
প্রিয়! এর মান কী "@color/background_trans_light"?
শজিল আফজাল

চিয়ার্স @ ফ্রেইকহেড, এটি আসলে আমার পক্ষে কাজ করে! শীর্ষ, বাম বা ডান সীমানা নেই। ঠিক আমার যা প্রয়োজন, ধন্যবাদ!
শানেহোবান

2
আপনি দয়া করে ব্যাখ্যা করতে পারেন আপনি যখন -2 ডিপি রাখবেন তখন কেন এটি অদৃশ্য হয়ে যায় এবং আপনি যখন -1 ডিপি রাখেন তখনও এটি দৃশ্যমান? ধন্যবাদ!
ফ্রান্সিসকো রোমেরো

9

ঠিক যেমন @ নিক হাববার্ড বলেছিলেন, একটি সীমানা লাইন যুক্ত করার খুব সহজ উপায় রয়েছে।

<View
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:background="#000000" >
</View>

আপনি যা চান উচ্চতা এবং পটভূমির রঙ পরিবর্তন করতে পারেন।


8

আমার উত্তরগুলি @ এমিল সংস্করণের উপর ভিত্তি করে তবে আমি শক্তের পরিবর্তে স্বচ্ছ রঙ ব্যবহার করি।
এই উদাহরণটি একটি 2dp নীচের সীমানা আঁকবে।

<?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:color="#50C0E9" />
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>
    <item  android:bottom="2dp" >
        <shape android:shape="rectangle" >
            <stroke  android:width="2dp"
                     android:color="@color/bgcolor" />
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>
</layer-list>

@ color / bgcolor হ'ল পটভূমির রঙ যা আপনি সীমানার সাথে নিজের দৃষ্টিভঙ্গি আঁকেন।

আপনি যদি সীমান্তের অবস্থান পরিবর্তন করতে চান তবে একটির সাথে অফসেটটি পরিবর্তন করুন:

android:bottom="2dp"
android:top="2dp"
android:right="2dp"
android:left="2dp"

বা তাদের 2 বা ততোধিক সীমানা সংযুক্ত করতে:

android:bottom="2dp" android:top="2dp"

7

আপনি ফ্রেমলআউটে ভিউটিও গুটিয়ে রাখতে পারেন, তারপরে ফ্রেমের ব্যাকগ্রাউন্ড কালার এবং প্যাডিং সেট করুন যা আপনি চান; তবে পাঠ্যদর্শনটিতে ডিফল্টরূপে 'স্বচ্ছ' ব্যাকগ্রাউন্ড রয়েছে, সুতরাং আপনার পাঠ্যদর্শনটির পটভূমির রঙও পরিবর্তন করতে হবে।


বেশ সহজ. আপনি অভ্যন্তরীণ দৃশ্যের মার্জিন দ্বারা বাহ্যরেখার আকার এবং দিক নিয়ন্ত্রণ করেন। ধন্যবাদ।
স্কট বিগস 23

5

কেন কেবল পটভূমির রঙ দিয়ে 1 ডিপি উচ্চ দৃশ্য তৈরি করবেন না? তারপরে এটি যেখানে আপনি চান সহজেই স্থাপন করা যেতে পারে।


4

কেবলমাত্র আমার সমাধানটি তালিকায় যুক্ত করতে ..

আমি একটি আধা স্বচ্ছ তলদেশ সীমানা চেয়েছিলাম যা মূল আকারের অতীতকে প্রসারিত করে (তাই আধা-স্বচ্ছ সীমানা মূল আয়তক্ষেত্রের বাইরে ছিল )।

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
  <item>
    <shape android:shape="rectangle" >      
      <solid android:color="#33000000" /> <!-- Border colour -->
    </shape>
  </item>
  <item  android:bottom="2dp" >
    <shape android:shape="rectangle" >     
      <solid android:color="#164586" />
    </shape>
  </item>
</layer-list>

যা আমাকে দেয়;

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


4

এটি পরিবর্তন করতে:

<TextView
    android:text="My text"
    android:background="@drawable/top_bottom_border"/>

আমি "অঙ্কনযোগ্য / শীর্ষ_বটম_বোর্ডার.এক্সএমএল" এ এই পদ্ধতির পছন্দ করি:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <gradient
                android:angle="270"
                android:startColor="#000"
                android:centerColor="@android:color/transparent"
                android:centerX="0.01" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:angle="90"
                android:startColor="#000"
                android:centerColor="@android:color/transparent"
                android:centerX="0.01" />
        </shape>
    </item>
</layer-list>

এটি কেবল সীমানাকেই তৈরি করে, একটি আয়তক্ষেত্র নয় যা আপনার পটভূমিতে কোনও রঙ থাকলে উপস্থিত হবে।


3

প্রথমে নীচে প্রদর্শিত সামগ্রীর সাহায্যে একটি এক্সএমএল ফাইল তৈরি করুন এবং এর নাম বর্ডার.এক্সএমএল রাখুন এবং এটিকে ডিরেক্টরি ডিরেক্টরিটির ভিতরে লেআউট ফোল্ডারের ভিতরে রাখুন

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

এর পরে কোড ব্যবহার করুন

TextView tv = (TextView)findElementById(R.id.yourTextView);
tv.setBackgroundResource(R.layout.border);

এটি টেক্সটভিউয়ের উপরে এবং নীচে একটি কালো রেখা তৈরি করবে।


হ্যাঁ, এটি কাজ করবে, আমি যাচাই করেছি। বোতাম বোতাম = (বোতাম) FindViewById (R.id.button); button.setBackgroundResource (R.layout.border);
নিখিল দীনেশ

আমি উপরের এক্সএমএল ফাইলটিতে কালো রঙ ব্যবহার করেছি, আপনার ব্যাকগ্রাউন্ডের রঙ কালো হতে পারে, অন্য কোনও রঙ ব্যবহার করে চেষ্টা করুন। এটি অবশ্যই <? XML version = "1.0" এনকোডিং = "ইউটিএফ -8"?> <আকৃতি xMLns: অ্যান্ড্রয়েড = " স্কিমাস.অ্যান্ড্রয়েড. com/apk/res/android "> <শক্ত অ্যান্ড্রয়েড: রঙ = "# 474848 "/> <স্ট্রোক অ্যান্ড্রয়েড: প্রস্থ =" 1 ডিপি "অ্যান্ড্রয়েড: রঙ =" # ffff00 "/> <প্যাডিং অ্যান্ড্রয়েড: বাম =" 1 ডিপি "অ্যান্ড্রয়েড: শীর্ষ =" 1 ডিপি "অ্যান্ড্রয়েড: ডান =" 1 ডিপি "অ্যান্ড্রয়েড: নীচে =" 1dp "/> </ translation>
নিখিল দীনেশ

1
আমার পক্ষে কাজ করেনি। অনুভূমিকভাবে - পাঠ্য দর্শনের মাঝখানে সীমানা রেখা আঁকা হয়েছিল।
অ্যালিকেলিন-কিলাকা

3

কোড নীচে লিখুন

<View
    android:layout_width="wrap_content"
    android:layout_height="2dip"
    android:layout_below="@+id/topics_text"
    android:layout_marginTop="7dp"
    android:layout_margin="10dp"
    android:background="#ffffff" />

2

এটি অর্জনের জন্য এখানে একটি উপায়।

    <?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="1dp"
                    android:color="@color/grey_coaching_text" />
            </shape>
        </item>

        <item
            android:bottom="1dp"
            android:top="1dp">
            <shape android:shape="rectangle">
                <solid android:color="@color/white" />
            </shape>
        </item>
    </layer-list>

স্ট্রোকের জন্য প্রথম আইটেম এবং শক্ত পটভূমির জন্য দ্বিতীয়টি। বাম এবং ডান সীমানা লুকানো।


2

সীমা ব্যবহার করে সীমান্তগুলি ইনসেট করার সহজতম উপায় InsetDrawable, নীচের অংশে কেবল শীর্ষ সীমান্ত দেখানো হবে:

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

        <solid android:color="@color/light_gray" />
        <stroke
            android:width=".5dp"
            android:color="@color/dark_gray" />
    </shape>
</inset>

2

পুনরায় আকার / অঙ্কনযোগ্য ফাইল যুক্ত করুন

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

পটভূমির সম্পত্তিতে এই ফাইলটিতে লিঙ্ক যুক্ত করুন


1

লিনিয়ারলআউট দিয়ে চিত্রটি মোড়ানোর চেষ্টা করুন এবং পাঠ্যের চারপাশে আপনি যে সীমানা রঙ চান তা এর পটভূমি সেট করুন। তারপরে আপনার সীমানার জন্য আপনি যে পুরুত্ব চান তা পাঠ্যদর্শনটিতে প্যাডিং সেট করুন।


1

আপনি আপনার কাজটি করতে একটি 9-পাথও ব্যবহার করতে পারেন। এটি তৈরি করুন যাতে রঙিন পিক্সেল উচ্চতায় গুণিত না করে কেবল স্বচ্ছ পিক্সেল।


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

<solid android:color="@color/light_grey1" />
<stroke
    android:width="1dip"
    android:color="@color/light_grey1" />

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

    </shape>

1

এর উপরে এবং নীচে কেবল দৃশ্যগুলি যুক্ত করুন View

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@color/your_color"
        app:layout_constraintBottom_toTopOf="@+id/textView"
        app:layout_constraintEnd_toEndOf="@+id/textView"
        app:layout_constraintStart_toStartOf="@+id/textView" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:gravity="center"
        android:text="Testing"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@color/your_color"
        app:layout_constraintEnd_toEndOf="@+id/textView"
        app:layout_constraintStart_toStartOf="@+id/textView"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

</android.support.constraint.ConstraintLayout>

0
// Just simply add border around the image view or view

<ImageView
                android:id="@+id/imageView2"
                android:layout_width="90dp"
                android:layout_height="70dp"
                android:layout_centerVertical="true"
                android:layout_marginRight="10dp"
                android:layout_toLeftOf="@+id/imageView1"
                android:background="@android:color/white"
                android:padding="5dip" />

// After that dynamically put color into your view or image view object

objView.setBackgroundColor(Color.GREEN);

//VinodJ/Abhishek

-1
<TextView
    android:id="@+id/textView3"
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:background="#72cdf4"
    android:text=" aa" />

আপনি যেখানে বর্ডার যুক্ত করতে চান সেখানে কেবল এই পাঠ্যদর্শনটি যুক্ত করুন


-1

কেবল @ ফ্রেইকহেড এবং ব্যবহারকারী 1051892 এর উত্তরগুলি প্রয়োগ করতে , <item android:bottom|android:left|android:right|android:top>যদি নেতিবাচক হয় তবে তার চেয়ে বেশি হওয়া আবশ্যক <stroke android:width>। যদি তা না হয় তবে আইটেমের চিত্রকর্মটি স্ট্রোকের পেইন্টিংয়ের সাথে মিশ্রিত হবে এবং আপনি মনে করতে পারেন যে এই মানগুলি কাজ করছে না।

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