2012-02-10 36 views
14

Tôi không biết làm thế nào để có được một hình ảnh để điền vào màn hình, đã thử tất cả mọi thứ, có lẽ có một số bố trí cụ thể tôi nên sử dụng ..?Android: làm thế nào để có được ImageView để điền vào màn hình

Tôi đang sử dụng một ImageView, tuy nhiên điều này chỉ lấp đầy khoảng 70% của màn hình, để lại khoảng trống ở phía dưới ...

Tại thời điểm này tôi chỉ sử dụng một LinearLayout và thiết lập nền tảng của nó để hình ảnh của tôi. Trong khi điều này lấp đầy màn hình, hình ảnh hơi căng thẳng, mà tôi không muốn.

Bất kỳ trợ giúp nào sẽ được đánh giá rất nhiều! :)

Các mã bên trong các thẻ ImageView của file layout của tôi là:

android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:scaleType="centerCrop" 
android:adjustViewBounds="true" 
android:src="@drawable/image" 
+0

android: layout_height = "match_parent" sẽ làm – njzk2

Trả lời

42

// trong xml hình ảnh thuộc tính của bạn như

android:scaleType="fitXY" 

hoặc // sử dụng qua programatically

imgview.setScaleType(ScaleType.FIT_XY); 

Lưu ý: này áp dụng cho khi hình ảnh được thiết lập với android : src = "..." thay vì android: background = "..." làm hình nền được đặt theo mặc định để kéo dài và vừa với Chế độ xem.

+0

khi bạn nói sử dụng điều này thông qua mã hóa của bạn, bạn có nghĩa là trong hoạt động của bạn? – Shaw

+0

@Shaw không có nghĩa là bạn cũng có thể làm điều đó thông qua chương trình –

+2

Câu trả lời này sẽ kéo dài hình ảnh - Tôi biết nó không phải là yêu cầu của OP, nhưng nếu bạn muốn câu trả lời lấp đầy màn hình mà không làm hỏng tỷ lệ khung hình, hãy kiểm tra @Revs trả lời dưới đây. – ntgCleaner

4

Sử dụng dòng dưới đây trong mã xml ảnh View của bạn.

android:scaleType="fitXY" 
+0

điều này sẽ không giữ tỷ lệ – njzk2

+0

có thể nhưng nó sẽ lấp đầy màn hình như OP muốn và nếu độ phân giải hình ảnh đủ tốt thì không nên đưa ra sự cố. – Sunny

-1

Bạn có thể sử dụng bố cục thực tế bất kỳ và chỉ cần đặt hình nền cho hình ảnh của mình. Sau đó, chỉ cần làm cho chiều rộng và chiều cao điền vào phụ huynh.

hoặc dụ nếu bạn muốn chỉ là một hình ảnh thiết lập nó cho bố trí tuyến tính chính của bạn

<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:orientation="horizontal" 
     android:layout_height="fill_parent" 
     android:background="@drawable/yourimage"> 
</LinearLayout>  
6
android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scaleType="centerCrop" 
    android:adjustViewBounds="true" 
    android:src="@drawable/image" 

chỉ cần thay đổi chiều rộng bố trí và chiều cao mà sẽ làm việc với cả hai 'trung tâm' và 'centercrop'

+1

Không chắc chắn tại sao điều này không được chấp nhận - Câu trả lời này hoạt động mà không kéo dài hình ảnh và mất tỷ lệ khung hình chính xác. – ntgCleaner

0

Đừng quên xóa

android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 

từ layoutparams, ở đầu xml của hoạt động. Nếu không, hình ảnh sẽ gặp sự cố khi lấp đầy toàn bộ màn hình.

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