Cập nhật: Kích thước màn hình nhiều thiết bị là một cá trích đỏ - vấn đề chỉ là hình ảnh không mở rộng đúng cách để lấp đầy màn hình - xem nhận xét về câu trả lời của Ivan.Kích thước màn hình thiết bị có hiệu ứng lạ trên ImageViews
Tôi có một file layout với một hình ảnh:
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerCrop" />
Sau đó, tôi gán đối tượng vẽ được, đó là nhỏ và phải được nhân rộng:
setContentView(R.layout.image_story);
ImageView image = (ImageView)findViewById(R.id.image);
image.setImageDrawable(s.image);
Dưới đây là làm thế nào nó được render trên hai AVD có kích thước màn hình khác nhau. Những điều này nên giống nhau (câu hỏi chi tiết ở phía dưới). Xin lỗi vì những hình ảnh lớn.
với scaleType = centerCrop:
với centerInside
AVDs:
Edit:
Với layout_height = "fill_parent" và scaleType = "centerInside"
Tôi có một AVD 2.1 với các giá trị mặc định, vì vậy màn hình nhỏ và điều này hoạt động chính xác như mong đợi - hình ảnh được phóng to để lấp đầy chiều rộng và chiều cao xem được bao bọc theo chiều cao được chia tỷ lệ.
On Droid Bionic của tôi với một màn hình lâu hơn, và trên bất kỳ AVD với kích thước màn hình tương tự, điều này không work- hình ảnh được thu nhỏ để lấp đầy chiều rộng, nhưng quan điểm được gói vào gốc trước chiều cao hình ảnh tỷ lệ, do đó phần trên cùng và dưới cùng bị cắt.
Tôi không biết tại sao tỷ lệ màn hình của thiết bị sẽ ảnh hưởng đến điều này. Tôi đã thử vô số sự kết hợp của các thông số bố trí và các loại thang đo cố gắng để có được điều này để làm việc trên Bionic. Mọi thứ hoạt động chính xác như mong đợi trên màn hình nhỏ hơn và không hoạt động trên màn hình lớn hơn. Nếu tôi đặt chiều cao hình ảnh một cách rõ ràng trong dp
, nó hoạt động như mong đợi, nhưng tôi không bao giờ biết kích thước của hình ảnh (hoặc màn hình) sẽ là gì. Bất kỳ đề xuất?
Ảnh chụp màn hình có thể hữu ích vì tôi không hoàn toàn chắc chắn rằng tôi đang chụp hình đúng. – CaseyB
Ảnh chụp màn hình được thêm vào - điều đó có giúp ích gì không? Màn hình nhỏ hơn cho kết quả mong đợi trong việc mở rộng hình ảnh. Lớn hơn là sử dụng kích thước chưa được đánh số để định kích thước ImageView. –
Bạn có chắc chắn muốn layout_height = wrap_content không? –