2013-07-10 42 views
5

Có thể chỉ định đường viền trong nút Android trong tệp main.xml không? [p.s. mà không có sự 'tập tin xml chứa thẻ đột quỵ riêng' nhưng trong file gốc mà tôi xác định nút và cũng mà không có sự 'tự động bởi chương trình' giải pháp và giải pháp 'hình ảnh']Có thể chỉ định đường viền trong nút android không?

<Button 
    android:background="#FFFFFF" 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:text="Player 3" 
    android:layout_x="0px" 
    android:layout_y="0px" 
    android:id="@+id/p3" 
    android:layout_weight="1" 

/> 

đây tôi đang thay đổi nền động nhưng vấn đề là, đối với 2 nút không có đường viền.

+0

Bạn có thể sử dụng hình dạng-selector xml để làm cho nút tùy chỉnh với biên giới của sự lựa chọn của riêng bạn cho các nút khác nhau khẳng định, Có một cái nhìn tại [ Nút Android chuẩn có màu khác] (http://stackoverflow.com/q/1521640/593709) –

+0

xml bố cục dành cho bố cục, không dành cho chi tiết cụ thể về đồ họa – njzk2

+0

@AdilSoomro, tôi đã rất tuyệt ng rằng sẽ có tổng hợp tôi đã bỏ lỡ .thnk u cho câu trả lời. tôi có thể phải đi với phương pháp chọn hình dạng. – Nyx

Trả lời

7

Đây không phải là cách được khuyến nghị để thực hiện vì nó gây ra overdraw và thêm chế độ xem không cần thiết, Gunaseelan has the proper method.


Không có khái niệm về đường viền làm thuộc tính. Cách chấp nhận là sử dụng một drawable riêng biệt làm nền cho View (sử dụng stroke như bạn đã đề cập và như @gunaseelan viết).

Các khác (không khuyến khích) là cách để kèm Button trong một View như một LinearLayout của bạn, thiết lập màu nền sang màu biên giới mong muốn trên đóng gói View và padding trên ngoài View quá.

<LinearLayout 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:background="#342334" 
    android:padding="5dp" 
    > 
    <Button 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:text="whatwhaaat" 
     /> 
</LinearLayout> 

Giá trị của phần đệm sẽ cho biết độ dày của đường viền. Phương pháp này không được khuyến nghị khi bạn kết thúc với một số View bổ sung trong bố cục của mình và một lớp rút tiền khác (nó rút ra LinearLayout sau đó là Button ở trên cùng).

+0

tốt, tôi đã kindof hy vọng rằng sẽ có sumthing tôi đã bị mất.thnk u cho câu trả lời – Nyx

34

Cố gắng sử dụng hình dạng

my_shape.xml

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

    <corners 
     android:bottomLeftRadius="7dp" 
     android:bottomRightRadius="7dp" 
     android:radius="0.1dp" 
     android:topLeftRadius="7dp" 
     android:topRightRadius="7dp" /> 

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

    <stroke 
     android:width="1dp" 
     android:color="#E8E6E7" /> 

</shape> 

Và Nút

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/my_shape" 
    android:text="Button" /> 

Ảnh chụp màn hình

enter image description here

Tôi hy vọng t anh ấy sẽ giúp bạn.

+0

hi, tôi đã cố gắng để tránh điều này rất.but thnk u cho câu trả lời ur. – Nyx

+1

Xin chào. Tôi đã sử dụng mã của bạn nhưng không có thay đổi nào được phản ánh cho các nút của tôi. Bạn có thể giúp? –

+0

Lưu ý rằng AndroidStudio tạo 'bộ chọn' theo mặc định, không phải' hình dạng'. –

0

enter image description here

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

<gradient 
    android:angle="270" 
    android:endColor="#E8f2fe" 
    android:startColor="E8f2fe" /> 

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

<stroke 
    android:width="2px" 
    android:color="#486e9d" /> 

để biết thêm http://androiddhina.blogspot.in/2015/09/border-color-on-android-button.html

Các vấn đề liên quan