2010-09-24 31 views
21

tôi sử dụng Layout_width="fill_parent "và Layout_height="wrap content". Nếu một hình ảnh lớn hơn ImageView, nó sẽ được downscaled cách hoàn hảo.Android: scaleType = "fitCenter" chỉ hoạt động với các thuộc tính Layout_width và Layout_height không?

Tuy nhiên, tôi không bao giờ nhận nó làm việc để upscale hình ảnh nhỏ hơn. Tôi đã cố gắng bất kỳ sự kết hợp của ScaleType và 'AdjustViewBounds' : nó luôn luôn nằm trong kích thước riêng của mình ở giữa quan điểm hình ảnh đây là mã ...

<LinearLayout 
     android:id="@+id/LinearLayout02" 
     android:layout_height="wrap_content" 
     android:background="@drawable/content_bg" 
     android:orientation="vertical" 
     android:padding="5dp" 
     android:layout_width="fill_parent" 
     android:layout_marginLeft="1px"> 
     <ImageView 
      android:layout_height="wrap_content" 
      android:src="@drawable/test" 
      android:id="@+id/ImageViewTest" 
      android:layout_width="fill_parent" 
      android:adjustViewBounds="true" 
      android:scaleType="center"></ImageView> 
</LinearLayout> 
+0

Hãy thử sử dụng CENTER_INSIDE hoặc FIT_XY. – bhups

+0

Tôi đã thử tất cả chúng. Không ai trong số họ làm việc cho tôi. – OneWorld

+4

Tôi tìm thấy cách duy nhất để làm việc, đã thiết lập layout_hight và layout_width thành các giá trị cố định như 150dp x 200dp – OneWorld

Trả lời

1

Thêm android:scaleType="fitXY" để ur ImageView nên duỗi hình ảnh nếu kích thước là nhỏ

+3

cũng không giữ tỷ lệ khung hình ... – OneWorld

+0

Vâng nó hoạt động tốt nếu hình ảnh lớn hơn nhưng nếu nhỏ hơn thì nó chỉ phù hợp với chiều cao hoặc chiều rộng. Stupid cách Android xử lý hình ảnh – JPM

4
<LinearLayout 
    android:layout_height="wrap_content" 
.. 210

sử dụng kích thước ban đầu của hình ảnh bên trong.

Hãy thử một cái gì đó lớn hơn hoặc fill_parent

+0

Đây chỉ là một trong những câu trả lời vàng của tôi, bạn không có ý tưởng bao nhiêu rắc rối tôi đã có với imageview và của nó bị lỗi (hoặc hiểu lầm) scaletype. Tham một tấn. – Warpzit

2

Sử dụng android:scaleType="FIT_START" hoặc android:scaleType="FIT_END", để Tính toán một quy mô mà sẽ duy trì tỷ lệ khía cạnh src gốc, nhưng cũng sẽ đảm bảo src phù hợp hoàn toàn bên trong dst (từ GoogleDev). Thông tin

thêm:

http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

+2

Đó là android: scaleType = "fitStart" hoặc android: scaleType = "fitEnd" và các trường này gần giống y như android: scaleType = "fitCenter". Sự khác biệt là cách họ xử lý không gian trống, aliging để bắt đầu, kết thúc hoặc tập trung. – OldSchool4664

9

tôi chỉ tìm thấy một cách để làm cho nó hoạt động.

này hoạt động trong 2.1 (AVD) & 4.1.2 (thiết bị)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scaleType="fitCenter" /> 

</LinearLayout> 
+1

với phương pháp này, nếu bạn có đường viền trên imageView, sẽ có khoảng trống ở các cạnh mà hình ảnh không được chia tỷ lệ thành – Olumide

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