2013-02-14 37 views
18

Dưới đây là một hình ảnh sẽ giúp bạn hiểu được vấn đề của tôi:Làm cách nào tôi có thể kéo hình ảnh trong nút hình ảnh thành toàn bộ vùng của nút ảnh?

It's a "1"

Tôi muốn căng hình ảnh hiển thị bên ImageButton cho toàn bộ diện tích của ImageButton. Như bạn có thể thấy, hình ảnh với số 1 chỉ chiếm khoảng 95% số ImageButton và bạn cũng có thể thấy ranh giới của ImageButton.

tôi vẫn muốn duy trì vào nút hình ảnh phong cách

Đây là cách tôi đang sử dụng ImageView:

<ImageButton 
    android:id="@+id/secondActivityBbuttonDownRight" 
    android:layout_width="0dip" 
    android:layout_height="match_parent" 
    android:layout_weight="0.5" 
    android:scaleType="fitStart" 
    android:src="@drawable/111" /> 

Tôi nghĩ tôi phát hiện ra vấn đề của tôi là gì. Tôi cần một thành phần tùy chỉnh chỉ có thể chứa hình ảnh và có hiệu ứng nhấp chuột.

+0

sử dụng android này: background = "@ drawable/111 " – duggu

+0

thêm android: background =" @ android: color/transparent "vào ImageButton –

+0

Tôi đã chỉnh sửa bài đăng của bạn, xem http://meta.stackexchange.com/questions/85516/ để biết cách thêm hình ảnh vào bài đăng của bạn. – lambda

Trả lời

2

Sử dụng mã dưới đây: -

<ImageButton 
     android:id="@+id/secondActivityBbuttonDownRight" 
     android:layout_width="0dip" 
     android:layout_height="match_parent" 
     android:layout_weight="0.5" 
     android:scaleType="fitStart" 
     android:background="@drawable/111" /> 
+0

Điều đó không giải quyết được vấn đề của tôi. Tôi muốn sử dụng kiểu nút hình ảnh & kéo dài hình ảnh – user2051993

+0

loại hình được sử dụng với nền (không áp dụng trên nền ...) – njzk2

52

ImageButton là ImageView.
Nếu bạn muốn hình ảnh của mình điền vào nút
hơn đặt android:scaleType="fitXY", do đó hình ảnh bạn đặt trong android:src sẽ được kéo dài để lấp đầy nút hình ảnh toàn bộ.

ImageButton có nền dưới hình ảnh và phần đệm của bạn.
Nếu bạn không muốn nền
đặt android:background="@android:color/transparent".
Nếu bạn không muốn đệm
đặt android:padding="0" hoặc đặt nền không có đệm.

+1

Cảm ơn bạn đã trả lời tốt, nhưng bạn cần đơn vị trên đệm: android: padding = "0dip " – Deemoe

+0

Tôi nghĩ rằng padding không còn là một phần của ImageButton – Micro

+0

nhờ câu trả lời đó :) –

1

Bạn nên cân nhắc tạo hình ảnh 9 bản vá để làm cho hình ảnh vừa khít trên ImageButton trong trường hợp bạn cần kéo căng hình ảnh, nhưng bạn không muốn hình ảnh bị biến dạng.

Để tạo một nút với một hình ảnh hoàn toàn bao phủ nó, bạn có thể sử dụng một cái gì đó như thế này:

<ImageButton android:id="@+id/iconBtn" 
    android:layout_width="64dip" 
    android:layout_height="64dip" 
    android:src="@drawable/icon_button" 
    android:scaleType="fitCenter" 
    android:background="#00000000"/> 

Để xem hướng dẫn đầy đủ về tạo nút với giao diện tùy chỉnh và sử dụng bộ chọn để quản lý trạng thái của họ, bạn có thể kiểm tra một hướng dẫn tôi đã viết một số thời gian trước đây ở đây (Creating a custom Android button with a resizable skin).

1

android: scaleType = "fitXY" được kiểm tra và hoạt động chính xác.

+0

Tôi tự hỏi không có upvote về câu trả lời này. Nó hoạt động hoàn hảo! – princepiero

7

Bạn cũng có thể sử dụng

android:scaleType="centerCrop" 
android:padding="0dp" 
0

Nếu hình ảnh của bạn "111" không có đệm sau đó tự nó chỉ đơn giản là sử dụng android: background "@ drawable/111"

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