簡體   English   中英

如何計算不同設備dpi的圖像尺寸

[英]How to calculate image size for different devices dpi

我有一個帶有圖像的列表視圖布局

看起來像這樣

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

<ImageView
    android:layout_width="match_parent"
    android:layout_height="240dp"
    android:adjustViewBounds="true"
    android:id="@+id/listview_item_imageView"
    android:layout_gravity="center_horizontal|top" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#FAC308"
    android:id="@+id/listview_item_title"
    android:text="TITLE"
    android:textSize="20sp"
    android:paddingBottom="40dp"
    android:layout_centerInParent="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#ffffff"
    android:id="@+id/listview_item_subtitle"
    android:paddingTop="40dp"
    android:text="SUBTITLE"
    android:textSize="20sp"
    android:layout_centerInParent="true" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/orangeSeparator"
    android:src="@drawable/orangeseparator"
    android:layout_centerInParent="true" />

如果我在720x1280 240dpi的設備上運行它,則看起來像這樣

在此處輸入圖片說明

如果我在720x1280 320dpi的設備上運行它,則它看起來像這樣

在此處輸入圖片說明

我從互聯網上獲取圖像,所以我無法准備不同的版本。

如何使其在所有設備上看起來相似?

在你的容器里

android:layout_height =“ match_parent”

並在圖片中:

android:layout_height =“ 240dp”

您必須使容器具有相同的高度或'wrap_content'才能沒有這些間隙。

您還可以添加到imageview中:

android:scaleType="centerCrop"

另一件事是,您可以使用特定的庫來處理網絡映像的加載。

您可以使用fitXY Android Developer

android:scaleType="fitXY"

或者您也可以使用Photoshop或任何類似程序創建與原始資源不同的可繪制資源

你可以看這篇文章。 使您的應用程序支持不同的dpi版本和不同的屏幕類型: 支持不同的屏幕

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM