2012-02-15 12 views
13

Tôi có hình ảnh có kích thước 480 pixel x 40 pixel. Tôi muốn hiển thị hình ảnh này trong ImageView mà không có quy mô để phù hợp.Làm cách nào để ngăn chặn chia tỷ lệ trong Android Imageview?

Ví dụ: Nếu màn hình của tôi chỉ rộng 320pixels, tôi chỉ muốn 320 hình ảnh hiển thị trên màn hình, không bị nhồi nhét vào ImageView (ngay cả khi phần còn lại của hình ảnh bị cắt) .

Có cách nào để ngăn không cho nó co giãn không?

EDIT: Ngoài ra, tôi muốn phía bên trái của hình ảnh thẳng hàng với cạnh trái của màn hình thiết bị.

Cảm ơn

Trả lời

23

Sử dụng ScaleType.CENTER, như thế này trong XML:

android:scaleType="center" 

này sẽ "tập trung hình ảnh trong giao diện, nhưng thực hiện không mở rộng quy mô"

đọc thêm ở đây: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

(Đây là cách lần truy cập đầu tiên trên googling "thang tỷ lệ hình ảnh")

+0

'ScaleType' chắc chắn là con đường để đi. Làm việc cho rất nhiều trường hợp sử dụng khác nhau. –

+0

Cảm ơn, nhưng có cách nào để nó dính vào bên trái không? – PaulG

+0

@PaulG RelativeLayout – AedonEtLIRA

10

Sử dụng loại nguyên mẫu MATRIX để đặt kích thước không có tỷ lệ và không định tâm

Nó sẽ sử dụng ma trận nhận dạng trừ khi bạn đặt ma trận bằng setImageMatrix (ma trận);

android:scaleType="matrix" 

Hoặc trong Java:

view.setScaleType(ImageView.ScaleType.MATRIX); 
+0

Cảm ơn rất nhiều! trung tâm scaleType không hoạt động như mong đợi nhưng ma trận đã làm. Trong trường hợp của tôi, tôi có một TextView layout_toLeftOf hình ảnh và khi văn bản phát triển, tôi cần hình ảnh ở bên phải để luôn luôn với kích thước ban đầu. – Moxor

0

Tôi đã có một vấn đề tương tự mà tôi đã có một đồ họa kích thước cố định mà tôi muốn mở rộng quy mô lên màn ảnh nhưng ở tỷ lệ đó là 480 x 200.

Tôi đã sử dụng Fill_parent trên chiều cao để nó có thể mở rộng và wrap_content trên chiều rộng. Cũng như Căn chỉnh Cha mẹ Bên trái và Căn chỉnh Hàng đầu.

Trong trường hợp của bạn, bạn chỉ có thể sử dụng wrap_content trên cả hai cũng như Căn trái Cha mẹ. Sau đó, tôi tweeked chiều rộng bằng cách sử dụng Right Margin 180dp trên màn hình bình thường để chắc chắn nó duy trì chiều rộng.

<ImageView 
    android:id="@+id/imageLayer" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginRight="180dp" 
    tools:ignore="ContentDescription" /> 
1

Hãy thử điều này một:

    android:adjustViewBounds="true" 
        android:scaleType="centerCrop"