2011-07-02 25 views

Trả lời

47

Bạn có thể đạt được điều này bằng cách sử dụng danh sách lớp và gây rối với phần đệm. Bạn sẽ cần 3 yếu tố:

1: Một hình border.xml, mà chỉ là một hình dạng rắn trong màu của đường viền của bạn: border.xml

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#ff0000"/> 
</shape> 

2: Hình dạng 'nội', hình dạng nơi bạn muốn đường viền xuất hiện xung quanh: inner.xml

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#00ff00"/> 
</shape> 

3: Danh sách lớp, sẽ đặt 2 phần này lên trên cùng. Bạn tạo đường viền bằng cách đặt đệm vào hình bên trong: layerlist.xml

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/border"/> 
<item android:drawable="@drawable/inner" 
    android:top="3dp" android:right="0dp" android:bottom="3dp" 
    android:left="3dp" /> 
</layer-list> 
+0

rất hữu ích ... tuyệt vời .. – Vikram

+2

đó là một tad phức tạp (trên Android, như thường lệ) - nhưng hoạt động độc đáo! –

+3

làm cách nào để làm cho hình dạng trong suốt –

1

Cách tiếp cận khác sẽ là sử dụng 9-Patch png file cho nền của bạn. Bạn thực hiện việc này bằng cách lấy tệp png bình thường và sau đó sử dụng công cụ như this để xác định:

  1. Khu vực chứa nội dung của bạn.
  2. Diện tích png của bạn trải dài khi kiểm soát cơ bản phát triển theo chiều rộng hoặc chiều cao.

Sau khi bạn tạo tệp png 9 bản vá, hãy thêm tệp đó vào bản vẽ của bạn (xác định tệp cho các độ phân giải khác nhau). Sau đó, chỉ cần đặt drawable làm nền điều khiển của bạn.

android:background="@drawable/my9_patch_file_name" 
Các vấn đề liên quan