2013-07-31 52 views
14

Tôi đang sử dụng relativelayout để phủ lên hình ảnh. Trên tất cả các kích cỡ màn hình mà tôi đã thử nghiệm (từ 2,7 đến 10,1 inch), tôi luôn có được khoảng trắng ở phía trên hình ảnh của mình. Trong IDE của tôi, tôi luôn thấy rằng relativelayout của tôi đang gây thêm không gian trên đầu và ở dưới cùng của hình ảnh của tôi.Tại sao tôi nhận được khoảng trắng ở trên cùng và ở dưới cùng của ImageView trong RelativeLayout của tôi?

Tại sao lại như vậy? Tôi đã đặt tất cả các thuộc tính độ cao thành wrap_content và thậm chí đã thêm thuộc tính adjustViewBounds.

Lưu ý: Bạn nên biết rằng hình ảnh của tôi có kích thước lớn hơn rất nhiều, có nghĩa là sẽ có một số loại tỷ lệ.

Cảm ơn lời khuyên của bạn!

Đây là mã:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="#FFFFFF" 
    android:orientation="vertical" > 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:orientation="vertical" 
    android:focusable="true" 
android:focusableInTouchMode="true"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:text="@string/bgf" 
    android:textColor="#000000" 
    android:textSize="25sp" /> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:adjustViewBounds="true" 
     android:paddingRight="5dp" 
     android:paddingLeft="5dp" 
     android:paddingBottom="5dp" 
     android:layout_gravity="center_horizontal" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true" 
     android:src="@drawable/cde" 
     android:contentDescription="@string/cde" /> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:adjustViewBounds="true" 
     android:layout_gravity="center_horizontal" 
     android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" 
     android:src="@drawable/fgh" 
     android:contentDescription="@string/abc" /> 

</RelativeLayout> 


</LinearLayout> 
</ScrollView> 
+0

scrollview bạn chỉ nên có một đứa trẻ. Relativelayout của bạn có nằm trong chế độ xem cuộn không? – Neoh

+0

Bạn có thể đăng hình ảnh bố cục –

+0

@Neoh không có mã nào bị thiếu. kiểm tra lại một lần nữa – user2426316

Trả lời

12

này xảy ra như hình ảnh được thu nhỏ lại để phù hợp với khu vực có sẵn mà không bị mất tỉ lệ của hình ảnh. Bạn đang nhận được không gian màu trắng vì hình ảnh đầu tiên chiếm chiều rộng có sẵn và theo tỷ lệ khung hình của hình ảnh gốc chiều cao của hình ảnh đã được hạ xuống.

Để có được một sự hiểu biết rõ ràng hơn, tôi đề nghị bạn làm như sau:

  • Đặt màu nền của cách bố trí tương đối với một số màu sắc

Bây giờ bạn có thể hiểu được những khoảng trống giữa IMAGExem và relativelayout.

Một khi bạn đã kiểm tra rằng trên thiết bị của bạn, Do sự thay đổi sau và thử lại

  • Đặt scaleType thuộc tính = "fitXY" trong IMAGExem của bạn.

Điều này sẽ làm cho hình ảnh co giãn và chiếm toàn bộ khu vực có sẵn cho ImageView. (Tỷ lệ cỡ ảnh gốc sẽ bị mất trong trường hợp này). Bây giờ bạn sẽ đến để biết số lượng diện tích mà imageView chiếm đóng.

Tôi cho rằng một khi bạn làm điều này bạn có thể kết luận rằng:

  1. Trong chạy đầu tiên nếu bạn đã thiết lập nền tảng của RelativeLayout như đen, nó sẽ không được hiển thị vì IMAGExem chiếm toàn bộ diện tích mà không để lại bất kỳ khoảng cách nào.

  2. Trong lần chạy thứ hai, hình ảnh sẽ bao phủ toàn bộ chiều cao và chiều rộng, mặc dù tỷ lệ khung hình đã bị mất. Do đó này biết chắc rằng IMAGExem không bao gồm chiều rộng và chiều cao và không có không gian còn lại, tỉ lệ của hình ảnh của mình tức là vấn đề

Trong trường hợp bạn đi đến một kết quả hoàn toàn khác xin đừng thông báo, chúng tôi có thể làm việc nó ra

EDIT:

Xin đừng loại bỏ các miếng đệm không bạn đã đưa ra cho IMAGExem quá

+0

khi tôi đặt màu nền của bố cục tương đối thành màu đen, tôi thấy phần màu đen. vì vậy nó có thể nhìn thấy !! – user2426316

+0

@ user2426316 bạn có thể đặt màu nền cho chế độ xem hình ảnh của bạn thành màu trắng và xem kết quả – pvn

+0

sau đó không có gì xảy ra. nhưng điều này là do các hình ảnh được đặt thành wrap_content – user2426316

36

tôi đã có vấn đề chính xác.Sau khi vật lộn trong một thời gian khá lâu, tôi giải quyết nó bằng cách làm theo này

** https://stackoverflow.com/a/22144391/2405473

và thêm dòng sau vào chương trình của tôi

android:adjustViewBounds="true" 

Nó hoạt động một cách hoàn hảo

+0

cảm ơn bạn vì điều này :) nó giúp tôi tiết kiệm rất nhiều thời gian –

+0

YEp nó hoạt động hoàn hảo .. Cảm ơn YOu Rất nhiều –

+0

Cảm ơn bạn rất nhiều :)) – user7176550