2010-07-23 29 views
22

Ai có thể cho tôi biết cách thay đổi kích thước imageButton để phù hợp với hình ảnh chính xác .. Đây là mã mà tôi đã thử, nhưng hình ảnh được đặt ở vị trí mà tôi đang định vị bằng cách sử dụng android:scaleType nhưng tôi không thể có thể giảm kích thước của imageButton, hãy giúp tôi trong việc khắc phục vấn đề này ... Mã mà tôi đã thử là ...ImageButton trong Android

<ImageButton> 
android:id="@+id/Button01" 
android:scaleType="fitXY" // i have tried all the values for this attr 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:cropToPadding="false" 
android:paddingLeft="10dp" 
android:src="@drawable/eye"> // this is the image(eye) 
</ImageButton> 
+0

Bạn muốn đạt được điều gì một cách chính xác? bạn có thể làm một kế hoạch hoặc một cái gì đó như thế trên sơn/gimp và cho chúng ta thấy? bởi vì tôi không thực sự thấy những gì bạn ngoại trừ để xem. thx – Sephy

+0

Hi Saphy ,, Thx cho phản ứng ur, nghi ngờ của tôi là làm thế nào để thay đổi kích thước của imagebutton trong android, nếu có thể xin chỉ cho tôi với một đoạn mã –

+0

Tôi không hiểu ý của bạn về thay đổi kích thước ... – Sephy

Trả lời

4

Kinda trễ, nhưng im tất cả cho 'tốt hơn muộn sau đó không bao giờ' Tôi đã có cùng câu hỏi ngày hôm nay, tìm thấy nó giải thích ở đây: http://www.anddev.org/tutorial_buttons_with_niceley_stretched_background-t4369.html

+3

Liên kết đó đưa ra lỗi SQL cho tôi vào lúc này: "Người dùng d0066dc5 đã có nhiều hơn các kết nối hoạt động 'max_user_connections' [1203]" –

+1

Trả lời chỉ với một liên kết không được khuyến khích vì lý do này. – Diti

3

Có thể bạn sẽ phải thay đổi kích thước nút theo chương trình. Bạn sẽ cần phải tải một cách rõ ràng hình ảnh trong phương pháp onCreate() của bạn, và thay đổi kích thước nút có:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    ImageButton myButton = (ImageButton) findViewById(R.id.button); 
    Bitmap image = BitmapFactory.decodeResource(R.drawable.eye); 
    myButton.setBitmap(image); 
    myButton.setMinimumWidth(image.getWidth()); 
    myButton.setMinimumHeight(image.getHeight()); 
    ... 
} 

Nó không được bảo đảm để làm việc, theo thông số kỹ thuật cho setMinimumX (kể từ chiều rộng và chiều cao vẫn còn phụ thuộc trên chế độ xem gốc), nhưng nó sẽ hoạt động khá tốt cho hầu hết mọi tình huống.

10

bạn đang thiết lập các hình ảnh với thuộc tính "src"

android:src="@drawable/eye"> 

sử dụng tài sản "background" thay vì "src" bất động sản:

android:background="@drawable/eye" 

như:

<ImageButton 
    android:id="@+id/Button01" 
    android:scaleType="fitXY" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:cropToPadding="false" 
    android:paddingLeft="10dp" 
    android:background="@drawable/eye"> // this is the image(eye) 
</ImageButton> 
29
android:background="@drawable/eye" 

hoạt động tự động.

android:src="@drawable/eye" 

là những gì tôi sử dụng với tất cả các vấn đề về thay đổi kích thước hình ảnh chiều rộng và chiều cao của nút ...

+0

bạn đá. cảm ơn bạn! đã cứu tôi một loạt thời gian. –

2

Cố gắng sử dụng ScaleType centerInside.

ScaleTypes không được hiển thị chính xác trong trình thiết kế bố cục Eclipse, vì vậy hãy kiểm tra trong ứng dụng đang chạy của bạn.

2

Bạn đã cố gắng cung cấp layout_width và layout_height như sau? Vì bạn đang thiết lập với wrap_content, nút hình ảnh mở rộng đến kích thước chiều cao và chiều rộng của hình ảnh nguồn.

<blink>  
    <ImageButton> 
    android:id="@+id/Button01" 
    android:scaleType="fitXY" 
    android:layout_width="80dip" 
    android:layout_height="80dip" 
    android:cropToPadding="false" 
    android:paddingLeft="10dp" 
    android:src="@drawable/eye"> 
    </ImageButton> 
</blink> 
1

Bạn cũng có thể đặt nền trong suốt. Vì vậy, nút trông phù hợp với biểu tượng của bạn.

<ImageButton 
    android:id="@+id/Button01" 
    android:scaleType="fitcenter" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:cropToPadding="false" 
    android:paddingLeft="10dp" 
    android:background="@android:color/transparent" 
    android:src="@drawable/eye" /> 
+0

Không phải là nó tốt hơn để chỉ thiết lập drawable của bạn như android: nền? Bằng cách đó, bạn sẽ không cần cả android: background AND android: src. –

0

Tôi nghĩ rằng bạn đã giải quyết vấn đề này, và như câu trả lời khác đề nghị

android:background="@drawable/eye" 

có sẵn. Nhưng tôi thích

android:src="@drawable/eye" 
android:background="00000000" // transparent 

và mã khác sẽ đặt làm hình ảnh) Nhưng theo câu trả lời bạn đã chọn, tôi đoán bạn có nghĩa là 9- vá.

2

Bạn không cần phải sử dụng nó sử dụng thuộc tính src

cách sai (Hình ảnh sẽ không phù hợp với những nút)

android:src="@drawable/myimage" 

Ngay cách là sử dụng nền atttribute

<ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:background="@drawable/skin" /> 

nơi skin là một xml

skin.xml

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

    <!-- <item android:drawable="@drawable/button_disabled" android:state_enabled="false"/> --> 
    <item android:drawable="@drawable/button_pressed" android:state_pressed="true"/> 
    <!-- <item android:drawable="@drawable/button_focused" android:state_focused="true"/> --> 
    <item android:drawable="@drawable/button_normal"/> 

</selector> 

sử dụng button_pressed.png và button_normal.png

Điều này cũng sẽ giúp bạn trong việc tạo nút da của bạn với 4 bang ép, bình thường, người khuyết tật và tập trung. Đảm bảo giữ nguyên kích thước của tất cả các pngs

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