2013-01-04 36 views
5

Tôi có thể vẽ được, cần phải làm nền. Nó cần phải kéo dài để lấp đầy màn hình (bỏ qua tỷ lệ khung hình).imageView không kéo dài để vừa với màn hình

Tôi đã cung cấp các kích thước thích hợp cho ldpi, mdpi, hdpi và xhdpi. (Tôi biết họ là thích hợp bằng tỷ số giữa độ rộng tương ứng và chiều cao, đó là đủ?)

Tôi đã cố gắng để làm điều này như sau:

sử dụng scaleType: fitXY trên IMAGExem

Điều này làm cho khoảng trắng xung quanh (bên trong?) ImageView.

fitXY image

Một tác phẩm xung quanh rằng tôi không hài lòng với trung tâm đang sử dụng cho scaleType như thế này:

Tôi không hài lòng vì vấn đề vẫn còn tồn tại trên máy tính bảng màn hình. enter image description here

Lưu ý:

  • Như bạn có thể đã nhận thấy, tôi đã cố gắng các bản sửa lỗi cho các nơi khác trên SO như thiết lập Điều chỉnh Xem ranh giới là true. Họ không giúp đỡ tại đây. :(
  • Tôi muốn có câu trả lời/sửa lỗi không có lập trình, như khi thực hiện điều này trong chính XML. Tôi thực sự không muốn viết mã để đặt hình nền, cuộc sống phải đơn giản hơn nhiều. P)

cập nhật 1:

đây là Layout XML

<merge xmlns:android="http://schemas.android.com/apk/res/android" > 

    <!-- <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" --> 
    <!-- xmlns:tools="http://schemas.android.com/tools" --> 
    <!-- android:id="@+id/FrameLayout1" --> 
    <!-- android:layout_width="fill_parent" --> 
    <!-- android:layout_height="fill_parent" --> 
    <!-- tools:context=".SplashScreen" > --> 


    <!-- 
     This FrameLayout insets its children based on system windows using 
     android:fitsSystemWindows 
    --> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:onClick="onClickTapToContinue" 
     > 
    </View> 

    <ImageView 
     android:id="@+id/bg_gradient" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_gravity="fill" 
     android:adjustViewBounds="true" 
     android:contentDescription="@string/this_is_the_background_image" 
     android:scaleType="center" 
     android:src="@drawable/bg_gradient" /> 

    <ImageView 
     android:id="@+id/bg_artwork" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:adjustViewBounds="true" 
     android:contentDescription="@string/artwork_man" 
     android:src="@drawable/bg_artwork" /> 

    <!-- </FrameLayout> --> 

    <ImageView 
     android:id="@+id/branding" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center|top" 
     android:adjustViewBounds="true" 
     android:contentDescription="@string/branding_text" 
     android:maxHeight="95dp" 
     android:paddingTop="5dp" 
     android:src="@drawable/title_wlcm" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|center" 
     android:paddingBottom="5dp" 
     android:text="@string/tap_continue" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="@android:color/white" /> 

</merge> 
+0

hãy để tôi thêm rằng tôi đã thử các tùy chọn scaleType khác và những tùy chọn này dường như không khắc phục được. (như được thấy trong trình soạn thảo WYSIWYG) –

+0

, bạn có thể thử thêm nền cho chính LinearLayout mẹ bằng usig 'android: background =" @ drawable/bg_gradient "' với 'layout_width' và' layout_height' bằng '" match_parent "'. – pyus13

+0

@ pyus13 Tôi đã thử nhưng điều đó thực sự không giúp ích gì. Tôi có kết quả tương tự. Và lý do tôi sử dụng framelayout ở đây là: 1) Tôi có thể "hợp nhất" và loại bỏ một cấp phân cấp xem 2) độ dốc, người đàn ông, xây dựng thương hiệu là tất cả các hình ảnh khác nhau cần được chồng lên nhau –

Trả lời

1

các hack tôi sẽ có cho bây giờ đang sử dụng các thiết lập của hình ảnh một s dành cho điện thoại và có thể có một bộ ảnh khác (và bố trí?) cho WVGA (Máy tính bảng).

Chưa thử điều này. Tôi sẽ đăng ảnh chụp màn hình ngay khi tôi làm.

Chỉnh sửa: Số liệu phải làm với chính hình ảnh đó. Có lớp đệm trong suốt. Sẽ yêu cầu nhà thiết kế sửa chữa nó. :)

0

Trong bố cục đồ họa của hoạt động trong nhật thực, bạn có thể nhấp chuột phải vào hoạt động và sau đó chọn "chỉnh sửa nền". Điều này sẽ cho phép bạn đặt hình ảnh làm mặt sau, bao gồm tất cả các cạnh của màn hình. Hy vọng điều này sẽ giúp, cổ vũ cho Jim

+0

Cảm ơn câu trả lời. Nhưng nó không chỉ thiết lập src của nền cho hình ảnh này? Vẫn hiển thị các khuyết tật của hình ảnh nếu có. (như được đăng trong câu trả lời của tôi; tôi có nên chuyển phần đó cho câu hỏi không?) –

1

Thay vì sử dụng thuộc tính android: background = "...". Hy vọng nó hoạt động.

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