9

Trước hết, tôi muốn xin lỗi trước vì tôi chắc chắn rằng câu hỏi này đã được hỏi trước đây, nhưng mặc dù tôi đã tìm kiếm khoảng 2 tuần ở những câu hỏi đó tôi không thể hình dung những gì tôi đang làm sai.Ảnh mờ trên thiết bị khác

Đây là nơi tôi tải hình ảnh trong hoạt động:

ImageView image = (ImageView) findViewById(R.id.shop_Image) ; 
image.setScaleType(ImageView.ScaleType.CENTER_CROP) ; 

String mDrawableName = data.vec.elementAt(id).fuenf ; 
if (mDrawableName.equals("leer")) 
    mDrawableName = "ic_launcher" ; 
int resID = getResources().getIdentifier(mDrawableName , "drawable", etPackageName()); 
image.setImageResource(resID) ; 

Và đây là xml-file:

<LinearLayout 
    android:id="@+id/shop_Layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#FDFDFD" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/shop_Image" 
     android:contentDescription="@string/shop_image" 
     android:layout_width="match_parent" 
     android:layout_height="400dp" 
     android:scaleType="centerCrop" 
     android:adjustViewBounds="true" 
     android:src="@drawable/ic_launcher" /> 
    [...] 

Và đây là kết quả:

Trên Galaxy Nexus, Nexus 5 hoặc Samsung S3 có dạng như sau:

http://abload.de/img/2014-06-0419.23.52ojuo4.png

Và trên Razr tôi hay HTC Desire X nó trông như thế này:

http://abload.de/img/2014-05-2514.19.482ju01.png

Tôi biết rằng các thiết bị trên, mà hiển thị các hình ảnh chính xác có một màn hình với ít nhất 4,7 inch trong khi cả hai với hình ảnh mờ có 4,3 inch hoặc 4 inch.

Và mặc dù tôi đã đặt những hình ảnh đó trong các thư mục có thể vẽ khác nhau, tôi vẫn nhận được những kết quả khó chịu này.

Nếu cần thêm mã ví dụ, vui lòng cho tôi biết.

PS: Xin lỗi vì sự nổi bật còn thiếu, tôi vẫn là một newbie :)

+0

Hãy thử sử dụng nhúng thay vì dp cho các biện pháp. dp = pixel mật độ và nhúng = pixel độc lập mật độ. Những thiết bị này có ppi thực sự khác nhau để có thể giúp đỡ. –

+1

Theo như tôi biết dp và dip là giống hệt nhau. Tôi vẫn có thể thử nó, cảm ơn bạn :) – VollNoob

+0

@MarcusGabilheri VollNoob là đúng. dip chỉ là một tên khác cho dp. Ngoài tên, có ** không có sự khác biệt ** giữa hai đơn vị. –

Trả lời

4

Một tìm kiếm nhanh chóng trên Google cho tôi biết những sự kiện này:

Desire X thông số kỹ thuật: 480 x 800 pixels, 4.0 inches (~233 ppi pixel density) - Vì vậy, nó là một hdpi thiết bị Samsung S3 thông số kỹ thuật: 720 x 1280 pixels, 4.8 inches (~306 ppi pixel density) - Vì vậy, nó là một thiết bị xhdpi

Bây giờ, bạn nên đọc này: developer.android.com/guide/practices/screens_support.html.

Một sửa chữa rất nhanh có thể là: đặt hình ảnh trong thư mục /res/drawable-xhdpi (nếu bạn không có thư mục, chỉ cần tạo nó).


Cũng xem xét rằng:

Các hình ảnh sẽ được lưu ở độ phân giải dpi thích hợp.
Lỗi thường gặp là để chúng ở độ phân giải chuẩn (không đủ) là 72 dpi hoặc 96 dpi.

hdpi độ phân giải hình ảnh nên 240 dpi Độ phân giảixhdpi hình ảnh nên 320 dpi, để hiển thị đúng và quy mô tốt.

Vì vậy, phải làm gì?

Thay đổi độ phân giải của hình ảnh lớn hơn, mà không thay đổi kích thước của nó (được tự động thu nhỏ lại khi bạn chạm vào độ phân giải - vì vậy, thiết lập lại nó đến 1280 * 800).
Sau đó, làm cho hình ảnh nhỏ hơn ra khỏi hình này, bằng cách thay đổi độ phân giải (nó sẽ giảm kích thước xuống đúng kích thước 480 * 854 - chỉ cần cắt ra vượt quá 54 pixel - 27 từ trên xuống và 27 từ phía dưới).

Khi bạn đưa những hình ảnh đúng vào các thư mục thích hợp của họ, tất cả mọi thứ bây giờ sẽ phù hợp tốt.

+0

Đó là lỗi của tôi! Tôi vẫn còn bối rối. Trên Galaxy Nexus, hình ảnh được hiển thị chính xác mặc dù dpi không chính xác, nhưng trên Razr I nó không hoạt động như trên Galaxy Nexus ... lạ. Nhưng dù sao! Cảm ơn :) – VollNoob

+1

Razr Tôi nằm trong cùng loại HDpi của Desire X, nhưng nó lớn hơn một chút - '540 x 960 pixel, 4,3 inch (~ 256 ppi pixel density)'. Bạn có thể mở rộng nó ra khỏi hình ảnh lớn hơn nhưng mở rộng đến 540 * 960 và sau đó đặt nó trong một thư mục có tên drawable-hdpi-w540dp-h960dp (hoặc có thể drawable-hdpi-w360dp-h640dp - Tôi không rõ ràng đầu óc bằng các "độ phân giải cụ thể "các thư mục - nếu nó nằm trong px hoặc trong dp, tương ứng) –

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