2013-10-14 44 views
5

Tôi cần một số trợ giúp tạo hình nền hoặc kéo dài theo chiều dọc và chiều ngang trong bố cục tuyến tính. Mỗi khi tôi cố gắng thiết lập nền tuy nhiên, nó không kéo dài hình ảnh để vừa với màn hình. Tôi cũng không quan tâm đến việc giữ tỷ lệ khung hình.Làm cách nào để kéo giãn/mở rộng hình ảnh nền trong bố cục tuyến tính của Android?

Đây là những gì tôi đã có trong một xml thử nghiệm vào lúc này:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/title" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/background"> 
</LinearLayout> 

nào trông như thế này trong bản xem trước (và trong game):

enter image description here

Nếu tôi thay đổi layout_height để fill_parent Tôi nhận được nền lặp lại:

enter image description here Tôi chắc chắn giải pháp là cực kỳ cơ bản, nhưng vì lý do nào đó tôi thiếu nó. Bất kỳ trợ giúp sẽ được đánh giá

nhờ

+0

Vấn đề dường như đi kèm với thiết bị Tablet ... cố gắng sử dụng hình ảnh lớn hơn và đặt chiều rộng và chiều cao thành 'match_parent' – MikeKeepsOnShine

+0

Ước gì có thêm câu trả lời ở đây. –

+0

Bạn đã kiểm tra tất cả các màn hình như thế nào? – Sami

Trả lời

6

Không chắc những tùy chọn bố trí nền sẵn có sẵn cho các thuộc tính nền tảng của một bố trí, nhưng bạn luôn có thể chỉ cần đặt một ImageView là yếu tố đầu tiên trong một FrameLayout ngoài với chiều rộng tối đa và chiều cao. Sau đó, bất cứ điều gì khác bạn đưa vào bố trí sẽ được vẽ trên đầu trang của hình ảnh này. Và tất nhiên bạn chỉ có thể tải trong một loại nguyên mẫu mà bạn mong muốn; chẳng hạn như fitXY có lẽ cho những gì bạn đang cố gắng đạt được.

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

<ImageView 
    android:id="@+id/background" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:contentDescription="@string/backgroundDescription" 
    android:scaleType="centerCrop"> 
</ImageView> 
... 
4

đây là điều quan trọng android:scaleType tham số với một trong những giá trị có thể:

  • ma trận
  • fitXY
  • fitStart
  • fitCenter
  • fitEnd
  • trung tâm
  • centerCrop
  • centerInside

nếu bạn không nhớ hình ảnh được croped khi nó là cần thiết (màn hình tỷ lệ khác biệt so với hình ảnh của bạn) và bạn không muốn hình ảnh bị biến dạng, tôi muốn giới thiệu centerCrop. nếu điều quan trọng là hình ảnh không bị cắt và bạn không ấn định nếu hình ảnh bị lệch, hơn fitXY sẽ thực hiện công việc.

Hy vọng điều này giúp và xóa mọi thứ lên một chút ...

0

Bạn có thể sử dụng scaleType với centerCrop

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scaleType="centerCrop" 
    android:src="@drawable/background" /> 

+0

Tôi nghĩ fitXY sẽ tốt hơn trong trường hợp này – Chaosit

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