2013-10-24 25 views
14

Tôi đang sử dụng Button ở một trong các bố cục. Tôi muốn kích thước Button nhỏ bằng kích thước văn bản/nhãn.Android: Giảm kích thước của Nút

Tôi đang sử dụng mã sau.

<Button 
android:text="@string/cancle_button" 
android:id="@+id/button1" 
android:background="@drawable/back_button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:gravity="center" 
android:textSize="12sp" 
android:textColor="#ffffff" 
android:textStyle="bold" /> 

Nhưng tôi muốn chiều cao của văn bản/nhãn là cao hơn tôi muốn Button. Bất cứ khi nào tôi giảm hoặc tăng chiều cao văn bản, chiều cao Button vẫn giữ nguyên. Tôi nên giải quyết vấn đề này như thế nào?

+2

khi bạn đang truyền ảnh ở chế độ nền, do đó kích thước nút sẽ phụ thuộc vào kích thước hình ảnh và sau đó là kích thước văn bản của bạn. Vì vậy, nếu kích thước văn bản của bạn nhỏ hơn hình ảnh thì nó sẽ không giảm. Nhưng nếu kích thước văn bản lớn hơn hình ảnh thì nó sẽ phát triển để phù hợp với văn bản. Điều này tất cả xảy ra vì thuộc tính "wrap_content". – Arshu

+1

Cảm ơn Arshad, nhưng ở đây tôi đang sử dụng gradient drawable ở dạng .xml trong thư mục drawable của tôi. –

+0

Thậm chí sau đó gradient cũng có kích thước và hình dạng cố định. Vì vậy, hoạt động như chính hình ảnh. – Arshu

Trả lời

1

Bạn có thể sử dụng bố cục tương đối để đạt được điều này. Kiểm tra mã mẫu này,

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:text="TextView" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/textView1" 
     android:layout_alignTop="@id/textView1" 
     android:layout_alignBottom="@id/textView1" 
     android:text="Button" /> 

</RelativeLayout> 
3

Sử dụng có thể xem hình ảnh trong trường hợp này hoặc nếu bạn đang xem hình ảnh trong trường hợp này để bạn có thể chụp ảnh với kích thước phù hợp để nó không xanh hơn thông qua các biện pháp này bạn có thể đặt kích thước nhỏ cho hình ảnh bạn có thể chụp ảnh với kích thước đó bạn muốn tạo ra cách tốt đẹp của mình

+0

Trong yêu cầu này, tôi đang sử dụng gradient shape drawable trong thư mục drawable –

1

Bạn có thể giải quyết vấn đề này bằng cách đặt chiều cao của nút thành giá trị cụ thể giống với chiều cao của nhãn.

<Button 
android:text="CANCEL" 
android:id="@+id/button1" 
android:background="@drawable/back_button" 
android:layout_width="wrap_content" 
android:layout_height="20sp" 
android:gravity="center" 
android:textSize="15sp" 
android:textColor="#ffffff" 
android:textStyle="bold" /> 
+1

Cảm ơn bạn đã trả lời, có cách nào khác để nút điều chỉnh kích thước tự động mà không mã hóa nó không. Tôi muốn kích thước nút sẽ thay đổi khi kích thước văn bản thay đổi –

+0

Nếu bạn thay đổi kích thước của văn bản sau đó là chiều cao được thiết lập như là nội dung bọc nó sẽ tự động điều chỉnh chiều cao đó – jyomin

+0

Nó không phải là điều chỉnh chiều cao nút là như nhau. –

82

Đã gần một năm kể từ khi câu hỏi được hỏi. Nhưng tôi phải đối mặt với vấn đề bây giờ và có một giải pháp. :) Có thể nó sẽ giúp ai đó.

Bạn có thể đạt được điều này bằng cách đặt android:minHeight="0dp" cho tiện ích Nút.

Và tôi đoán hành vi này là do có một số giá trị mặc định (có thể là 48dp) được đặt cho tiện ích con Nút theo khuôn khổ xem xét khu vực chạm tối thiểu.

+4

Tuyệt đối. Giải pháp tuyệt vời cho một vấn đề đơn giản. – tasomaniac

+2

điều này phải được đánh dấu là chính xác – Redman

+1

Cảm ơn @Sreekanth –

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