2012-05-01 31 views
10

Tôi có một Android ImageButton nhỏ trên màn hình biểu thị một biểu tượng. Vấn đề là khó chạm vào và kích hoạt. Tôi không muốn tăng kích thước của hình ảnh nhưng tôi muốn mở rộng vùng có thể nhấp và làm cho nó lớn hơn, vì vậy nếu người dùng đủ gần với hình ảnh, nó sẽ kích hoạt sự kiện onClick. Làm thế nào điều này có thể được thực hiện mà không cần thực hiện các sự kiện onTouch cho khu vực màn hình xung quanh?Android ImageButton làm cách nào để có khu vực có thể nhấp lớn hơn chính hình ảnh đó?

Trả lời

16

Bạn có thể quấn ImageButton trong một ViewGroup khác và đặt đệm trên ViewGroup. Sau đó, bạn sẽ nghe các nhấp chuột vào số ViewGroup. Dưới đây là một ví dụ:

<FrameLayout 
    android:id="@+id/button_layout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:padding="20dp" > 

    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/my_button" 
     android:duplicateParentState="true" 
     android:clickable="false" 
     android:focusable="false" /> 

</FrameLayout> 

Sau đó, bạn sẽ lắng nghe cho các nhấp chuột trên R.id.button_layout, và ImageButton bạn sẽ nhận được tất cả các bang cùng (ép, nhấn vào, vv) như cách bố trí mẹ.

+0

điều này dường như không hoạt động. –

+0

Ý tưởng chỉ cần đặt padding = "20dip" thay vì paddingRight, paddingLeft etc? –

+0

Đây có lẽ là kỹ thuật nhanh nhất nếu nó hoạt động, nhưng tôi vẫn chưa thể xác minh nó. –

0

Tôi đã có một tình huống tương tự ... Tôi chỉ cần đặt biểu tượng bằng cách sử dụng bố cục tương đối, sau đó đặt một nút lớn hơn trực tiếp lên trên đầu nó sử dụng một bản vẽ hoàn toàn trong suốt ở trạng thái bình thường và thêm màu mờ cho nhấn/tập trung/etc.

+0

làm cách nào để bạn chỉ định màu mờ? –

+0

Tôi đã vẽ các biểu tượng (trạng thái bình thường là một hình vuông trống không có màu hoặc alpha, tất nhiên) và tham chiếu tất cả thông qua một xml có thể vẽ được, đặt nút có thể vẽ được thành xml. không chỉ làm điều này để làm cho nút lớn hơn hình ảnh, nhưng nó cho phép tôi sử dụng một hình ảnh hệ thống tĩnh cho một biểu tượng điện thoại để giữ cho mọi thứ thống nhất trên từng thiết bị riêng biệt –

+0

xem tại đây: http://developer.android.com /resources/tutorials/views/hello-formstuff.html –

0

Tôi không chắc chắn cách bố cục của chúng tôi được định cấu hình nhưng một điều bạn cần lưu ý là sử dụng bố cục tương đối. Tạo biểu tượng của bạn với nền trong suốt lớn. Bạn sẽ phải fiddle với bố trí để có được vị trí chính xác, nhưng khu vực trong suốt cũng sẽ có thể nhấp.

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