Có cách nào dễ dàng để thêm đường viền vào đầu và cuối của Chế độ xem Android không?


407

Tôi có một TextView và tôi muốn thêm một viền đen dọc theo viền trên và dưới của nó. Tôi đã thử thêm android:drawableTopandroid:drawableBottomvào TextView, nhưng điều đó chỉ khiến toàn bộ khung nhìn trở nên đen.

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

Có cách nào để dễ dàng thêm đường viền trên và dưới vào Chế độ xem (cụ thể là TextView) trong Android không?


2
Thật đáng ngạc nhiên không ai đã đề cập đến dải phân cách ! Đây là thứ được tạo ra bởi Android, để đạt được, tốt, chia dọc. Không dễ dàng hơn và bạn làm mọi thứ trong bảng WYSIWYG "Thiết kế" trong Android Studio.
Fattie

ghi chú chia dọc được triển khai trong API 11.
JPM

1
Có lẽ bạn có thể chỉ ra cách sử dụng spliterV vertical?
androidguy

Câu trả lời:


430

Trong Android 2.2, bạn có thể làm như sau.

Tạo một xml drawable, chẳng hạn như /res/drawable/textlines.xml và gán cái này làm thuộc tính nền của TextView.

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

Mặt trái của vấn đề này là bạn phải chỉ định màu nền mờ, vì trong suốt sẽ không hoạt động. (Ít nhất tôi nghĩ họ đã làm nhưng tôi đã nhầm). Trong ví dụ trên, bạn có thể thấy rằng màu đơn sắc của hình đầu tiên #FFdddddd được sao chép trong màu đột quỵ hình 2.


11
Cũng xem giải pháp này, cũng hoạt động cho TextViews, nếu bạn muốn có một đường viền xung quanh: stackoverflow.com/questions/3263611/iêu
emmby

26
Cố gắng sử dụng android:color="@null"để tránh vấn đề nền mờ.
Matt Briançon

@emmby: khi kiểm tra mã này trên máy tính bảng, cần có thời gian để hiển thị trên màn hình, sau khi viền 1 giây được hiển thị khi tôi cuộn
Chetan

5
Thủ thuật android: color = "@ null" không phải là thủ thuật đối với tôi để giữ sự minh bạch và chỉ hiển thị đường viền ở một bên của chế độ xem. Trả lời từ người dùng1051892 dưới đây đã làm công việc!
Rick Pastoor

8
Giải pháp này đã tạo ra một đường viền bên trái và bên phải - mặc dù mỏng hơn.
AlikElzin-kilaka

279

Tôi đã sử dụng một mẹo để đường viền được hiển thị bên ngoài container. Với thủ thuật này, chỉ có một dòng được vẽ để nền sẽ được hiển thị của chế độ xem bên dưới.

<?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
Điều này làm việc rất tốt cho tôi, với một vài điều chỉnh để làm cho đường kẻ mỏng hơn một chút.
Jeff

1
Thủ thuật rất hay, mặc dù nó có thể đẹp hơn nếu chúng ta không phải lừa máy tính để hoàn thành công việc.
Yukio Fukuzawa

độc đáo thực hiện! những gì bạn nên xem là bên trái, trên cùng, bên phải, phía dưới nên - (chiều rộng của nét vẽ) dp
asakura89

Không hiển thị bất kỳ đường viền nào - chỉ làm cho nội dung chế độ xem của tôi trông nhỏ hơn :(
AlikElzin-kilaka

1
Hoàn thành tốt, làm việc với nền trong suốt. Đã thử nghiệm trong 2.2 và 4.4.2. Nên bao gồm tất cả ở giữa :)
HumaN

97

Tùy chọn 1: Hình dạng có thể vẽ

Đây là tùy chọn đơn giản nhất nếu bạn muốn có đường viền xung quanh bố cục hoặc chế độ xem mà bạn có thể đặt nền. Tạo một tệp XML trong drawablethư mục trông giống như thế này:

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

Bạn có thể xóa solidnếu bạn không muốn điền. Các thiết lập background="@drawable/your_shape_drawable"trên bố trí / xem của bạn.

Tùy chọn 2: Chế độ xem nền

Đây là một mẹo nhỏ tôi đã sử dụng trong một RelativeLayout. Về cơ bản, bạn có một hình vuông màu đen dưới chế độ xem mà bạn muốn tạo đường viền, và sau đó cung cấp cho chế độ xem đó một số phần đệm (không phải lề!) Để hình vuông màu đen hiển thị ở các cạnh.

Rõ ràng điều này chỉ hoạt động đúng nếu chế độ xem không có bất kỳ khu vực trong suốt nào. Nếu có, tôi khuyên bạn nên viết một tùy chỉnh BorderViewchỉ vẽ đường viền - nó chỉ nên là vài chục dòng mã.

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

Nếu bạn đang tự hỏi, nó làm việc với adjustViewBounds=true. Tuy nhiên, nó không hoạt động nếu bạn muốn có một nền tảng trong toàn bộ RelativeLayout, bởi vì có một lỗi khiến bạn không thể điền RelativeLayoutvào một View. Trong trường hợp đó, tôi khuyên bạn nên rút thăm Shape.

Tùy chọn 3: 9 miếng vá

Tùy chọn cuối cùng là sử dụng bản vẽ 9 miếng như thế này:

Bạn có thể sử dụng nó trên bất kỳ chế độ xem nào bạn có thể đặt android:background="@drawable/...". Và vâng, nó cần phải là 6x6 - Tôi đã thử 5x5 và nó không hoạt động.

Nhược điểm của phương pháp này là bạn không thể thay đổi màu sắc rất dễ dàng, nhưng nếu bạn muốn có các đường viền lạ mắt (ví dụ: chỉ một đường viền ở trên cùng và dưới cùng, như trong câu hỏi này) thì bạn không thể thực hiện chúng với khả năng Shapevẽ được , không mạnh lắm.

Tùy chọn 4: Chế độ xem thêm

Tôi quên đề cập đến tùy chọn thực sự đơn giản này nếu bạn chỉ muốn viền trên và dưới chế độ xem của bạn. Bạn có thể đặt chế độ xem của mình theo chiều dọc LinearLayout(nếu chưa có) và sau đó thêm các ô trống Viewở trên và bên dưới nó như thế này:

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

4
9 bản vá và hình dạng có thể vẽ được là được, nhưng tôi khuyên bạn không nên thêm lượt xem hoặc lượt xem hình ảnh để giải quyết vấn đề như vậy. Lý do là bạn nên loại bỏ càng nhiều <yếu tố> khỏi bố cục của mình để cải thiện việc vẽ lại bố cục và hoạt hình. Tôi sẽ loại bỏ chúng ngay lập tức và thực hiện một số tương tự như tùy chọn 1 hoặc 2.
Emile

2
@Emile Điều đó đúng, nhưng nếu bạn đang sử dụng ListView tùy chỉnh không hỗ trợ chia thì Chế độ xem đơn giản vẫn ổn. Tác động hiệu suất là bên cạnh con số không, đặc biệt là nếu bạn chắc chắn giữ chiều sâu bố cục của mình xuống. Nó cũng khắc phục các lỗi với bộ chia ListView trên các thiết bị (Tôi đã thấy một số thiết bị bỏ qua thuộc tính này).
Tom

Bạn cũng có thể sử dụng mẫu chế độ xem hiệu quả với danh sách xem để đảm bảo bạn giảm số lượng cuộc gọi đến findViewByID thường là nguyên nhân dẫn đến hiệu suất danh sách kém.
Emile

Trong iOS bạn chỉ có một cách để làm điều đó. Trên Android, bạn nên kiểm tra ít nhất bốn, trong trường hợp của tôi, tùy chọn 4 là cách để đi. Đôi khi drawables làm nền treo để kết xuất, hãy chú ý đến nó.
Ratata Tata

1
Tại sao Android không có giải pháp dễ nhất cho những thứ đó? như trong ngôn ngữ khác, như HTML, CSS hoặc một cái gì đó JavaFX, WPF ......
Asif Mushtaq

95

Để thêm 1dpviền trắng ở dưới cùng và để có nền trong suốt, bạn có thể sử dụng cách sau đơn giản hơn hầu hết các câu trả lời ở đây.

Đối với TextViewchế độ xem hoặc khác, thêm:

android:background="@drawable/borderbottom"

Và trong drawablethư mục thêm XML sau, được gọi là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>

Nếu bạn muốn có một đường viền ở trên cùng, hãy thay đổi android:top="-2dp"thànhandroid:bottom="-2dp"

Màu sắc không cần phải là màu trắng và nền cũng không cần phải trong suốt.

Các solidyếu tố có thể không được yêu cầu. Điều này sẽ phụ thuộc vào thiết kế của bạn (cảm ơn V. Kalyuzhnyu).

Về cơ bản, XML này sẽ tạo một đường viền bằng cách sử dụng hình dạng hình chữ nhật, nhưng sau đó đẩy các cạnh trên, phải và trái ra ngoài khu vực kết xuất cho hình dạng. Điều này chỉ để lại đường viền dưới cùng có thể nhìn thấy.


8
Đây là giải pháp tốt nhất, vì nó không tạo ra tình trạng rút tiền như những người khác
Greg Enni

Có một lý do mà các vị trí tiêu cực lớn gấp đôi so với đột quỵ với ( -2dpvs 1dp)? Có vẻ như để làm việc khi chúng bằng nhau về số lượng ( -11).
Denis Kniazhev

@DenisKniazhev: Khi sử dụng -2dpkết quả luôn sạch sẽ. Tôi nghĩ đã có trường hợp thử nghiệm mà kết quả không sạch. Tôi không thể nhớ đó là màn hình mật độ thấp hay mật độ cao hay thậm chí là phiên bản Android cũ hơn (có thể là 2.x).
Kích hoạt

Hấp dẫn. Bạn có biết nếu đây là trường hợp chung, ví dụ nếu tôi sử dụng 4dpcho chiều rộng hành trình thì tôi có nên sử dụng -8dpcho định vị không?
Denis Kniazhev

1
@DenisKniazhev: (từ bộ nhớ) nó trông giống như một phép tính dấu phẩy động chỉ từ một chút đến lớn hay nhỏ. Điều này có nghĩa là một giá trị -5dpsẽ là tất cả những gì cần thiết với giá trị chiều rộng là 4pd. Nó chỉ đơn giản là cần phải lớn hơn một chút để vượt qua sự thiếu chính xác của giá trị float.
Kích hoạt

36

Câu trả lời hiện được chấp nhận không hoạt động. Nó tạo ra các đường viền dọc mỏng ở bên trái và bên phải của chế độ xem là kết quả của việc khử răng cưa.

Phiên bản này hoạt động hoàn hảo. Nó cũng cho phép bạn thiết lập độ rộng đường viền một cách độc lập và bạn cũng có thể thêm đường viền ở bên trái / phải nếu muốn. Hạn chế duy nhất là nó KHÔNG hỗ trợ tính minh bạch.

Tạo một xml drawable có tên /res/drawable/top_bottom_borders.xmlvới mã bên dưới và gán nó làm thuộc tính nền của TextView.

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

Đã thử nghiệm trên Android KitKat thông qua Marshmallow


Làm thế nào để làm cho bên trong minh bạch?
Hitesh Sahu

1
@HiteshSahu Tôi nghĩ rằng nhược điểm của điều này là bạn sẽ phải khớp nền của bố cục với nền của tiện ích ở đây
chntgomez

35

Vì vậy, tôi muốn làm một cái gì đó hơi khác một chút: một đường viền ở phía dưới CHỈ, để mô phỏng một bộ chia ListView. Tôi đã sửa đổi câu trả lời của Piet Delport và nhận được điều này:

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

Lưu ý sử dụng px thay vì dp để có được bộ chia chính xác 1 pixel (một số DPI điện thoại sẽ làm cho dòng 1dp biến mất).


2
kính thưa! giá trị của là "@color/background_trans_light"gì?
Shajeel Afzal

Chúc mừng @phreakhead, điều này thực sự hiệu quả với tôi! Không có biên giới trên cùng, bên trái hoặc bên phải. Chính xác những gì tôi cần, cảm ơn!
shanehoban

2
Xin vui lòng giải thích tại sao khi bạn đặt -2dp thì nó biến mất và khi bạn đặt -1dp thì nó vẫn hiển thị? Cảm ơn!
Francisco Romero

9

Như @Nic Hubbard đã nói, có một cách rất dễ dàng để thêm một đường viền.

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

Bạn có thể thay đổi chiều cao và màu nền thành bất cứ thứ gì bạn muốn.


8

Câu trả lời của tôi dựa trên phiên bản @Emile nhưng tôi sử dụng màu trong suốt thay vì màu đặc.
Ví dụ này sẽ vẽ đường viền dưới 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 là màu của nền mà bạn vẽ chế độ xem với đường viền.

Nếu bạn muốn thay đổi vị trí của đường viền, hãy thay đổi phần bù bằng một trong:

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

hoặc kết hợp chúng để có 2 hoặc nhiều đường viền:

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

7

Bạn cũng có thể bao bọc khung nhìn trong FrameLayout, sau đó đặt màu nền và phần đệm của khung thành những gì bạn muốn; tuy nhiên, theo mặc định, textview có nền 'trong suốt', do đó bạn cũng cần thay đổi màu nền của textview.


Khá đơn giản. Bạn kiểm soát kích thước và hướng của đường viền bằng lề của Chế độ xem bên trong. Cảm ơn.
Scott Bigss

5

Tại sao không chỉ tạo chế độ xem cao 1dp với màu nền? Sau đó, nó có thể dễ dàng được đặt ở nơi bạn muốn.


4

Chỉ cần thêm giải pháp của tôi vào danh sách ..

Tôi muốn có một đường viền dưới bán trong suốt kéo dài qua hình dạng ban đầu (Vì vậy, đường viền bán trong suốt nằm ngoài hình chữ nhật cha).

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

Mà cho tôi;

nhập mô tả hình ảnh ở đây


4

Để thay đổi điều này:

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

Tôi thích cách tiếp cận này trong "drawable / top_bottom_border.xml":

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

Điều này chỉ làm cho các đường viền, không phải là một hình chữ nhật sẽ xuất hiện nếu nền của bạn có màu.


3

Trước tiên, tạo một tệp xml với nội dung được hiển thị bên dưới và đặt tên là Border.xml và đặt nó vào thư mục bố trí bên trong thư mục res

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

Sau đó, bên trong mã sử dụng

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

Điều này sẽ tạo một đường màu đen trên và dưới cùng của TextView.


Vâng, nó sẽ hoạt động, tôi đã kiểm tra. Nút nút = (Nút) findViewById (R.id.button); button.setBackgroundResource (R.layout.border);
Nikhil Dinesh

Tôi đã sử dụng màu đen trong tệp xml ở trên, màu nền của bạn có thể là màu đen, hãy thử bằng cách sử dụng một số màu khác. Nó chắc chắn sẽ hoạt động <? Xml version = "1.0" mã hóa = "UTF-8"?> <Shape xmlns: android = " schemas.android.com/apk/res/android "> <solid android: color = "# 474848 "/> <Stro android: width =" 1dp "android: color =" # ffff00 "/> <padding android: left =" 1dp "android: top =" 1dp "android: right =" 1dp "android: bottom =" 1dp "/> </ shape>
Nikhil Dinesh

1
Không làm việc cho tôi. Đường viền được vẽ ở giữa chế độ xem văn bản - theo chiều ngang.
AlikElzin-kilaka

3

Viết mã dưới đây

<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

Đây là một cách để đạt được nó.

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

Mục đầu tiên cho đột quỵ và thứ hai cho nền tảng vững chắc. Ẩn biên trái và phải.


2

Cách đơn giản nhất để thêm viền để chèn đường viền bằng cách sử dụng InsetDrawable, sau đây sẽ chỉ hiển thị đường viền trên cùng:

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

Thêm tệp vào res / drawable

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

Thêm liên kết trong hồ sơ này để nền tài sản


1

Hãy thử bọc hình ảnh bằng linearlayout và đặt nền của nó thành màu viền bạn muốn xung quanh văn bản. Sau đó đặt phần đệm trên textview thành độ dày bạn muốn cho đường viền của bạn.


1

Bạn cũng có thể sử dụng 9 đường dẫn để thực hiện công việc của mình. Tạo nó để pixel màu không nhân lên theo chiều cao mà chỉ pixel trong suốt.


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

Chỉ cần thêm Lượt xem ở trên cùng và dưới cùng của 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" />

Chỉ cần thêm TextView này bên dưới văn bản mà bạn muốn thêm đường viền


-1

Chỉ cần thực thi của @phreakheaduser1051892 của câu trả lời, <item android:bottom|android:left|android:right|android:top>nếu tiêu cực, phải để được lớn hơn <stroke android:width>. Nếu không, bức tranh vật phẩm sẽ được trộn lẫn với bức tranh đột quỵ và bạn có thể nghĩ rằng những giá trị này không hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.