Theo tôi hiểu, không có cách nào dễ dàng để thực hiện. nhưng nếu bạn sử dụng danh sách lớp với một mục có đường viền và sau đó không có một khoảng trống từ tất cả các cạnh mà bạn muốn có đường viền bằng với chiều rộng đường viền, bạn sẽ đạt được điều đó.
Hãy để tôi làm cho xml cho bạn đại diện cho phía dưới không biên giới ..
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Border -->
<item>
<shape>
<solid android:color="#f000"></solid>
</shape>
</item>
<!-- Body -->
<item android:left="2dip"
android:top="2dp"
android:right="2dp">
<shape>
<solid android:color="#ffafafaf"></solid>
</shape>
</item>
</layer-list>
Như bạn thấy, tôi đang nói sự mục thứ hai được inset của một đầu tiên bởi hai của dp trên tất cả các bên trừ đáy (do đó kết quả không biên giới ở phía dưới), có bạn đi:

Vì vậy, về cơ bản đây không phải là một biên giới mỗi gia nhập, đó là hình dạng từ bên dưới (mặc dù bạn có thể thêm một biên giới nếu bạn cần dấu gạch ngang hoặc chấm hoặc bất kỳ thứ gì) được bao phủ bởi một mục thứ hai sẽ là phần thân của nút. Tất cả trong cùng một drawable :)
Điều này có thể được áp dụng cho bất kỳ biên giới bạn muốn loại bỏ, bằng cách thay đổi các giá trị mà mục là hình chữ nhật, ví dụ, nếu tôi thay đổi right
trong mục Body để bottom
, các thiếu biên giới sẽ một trong những quyền vì đó là một mà không có sự inset
Nguồn
2012-05-13 10:47:06
Vâng, nơi làm Tôi phải đặt phong cách của mình? Trong- đầu tiên, phải không? –
Nhân tiện, tôi đang cố gắng sử dụng nó cho EditText. –
Việc bạn áp dụng nó không quan trọng. 'Mục' đầu tiên chỉ dành cho đường viền, vì vậy bạn cần chia kiểu giữa hai mục đó. Nếu bạn muốn có nền màu xanh lá cây chẳng hạn, bạn sẽ thêm nó vào mục thứ hai, cái được gọi là "body" trên mã của tôi –