0

新しい Android プロジェクトを開始しています。必要なすべてのグラフィック素材を .psd ファイルで入手しました。iOS アプリでもあるため、マテリアルは 1080 x 1920 の解像度用に設計されています。さまざまな画面密度に合わせて画像のサイズを変更しようとしたところ、奇妙な問題に遭遇しました。

いくつかの画像をスライスしたら、エミュレーターでいくつかのテストを実行することにしました。使用したテスト画像は、メニュー画像の 1 つです。そのサイズは 240 x 240 px で、予想どおり、.psd ファイルでは画面幅の約 4 分の 1 を占めます。ただし、この画像をアプリに配置して 1080 x 1920 エミュレーターで実行すると、画像は画面幅のほぼ 2/3 を占めました。そんなことがあるものか?

編集:私のレイアウト:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
    android:id="@+id/imgMenu"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/btn_tourist_info_selector"
    android:adjustViewBounds="true"/>
</LinearLayout>

使用している画像: http://oi61.tinypic.com/2zgwwfp.jpg

4

2 に答える 2

1

上記の画像をアプリに入れて実行しました

これは正確にはどういう意味ですか?画像を配置するコードを共有できますか?

コードがないと答えは簡単ではありませんが、ImageView の高さと幅がラップ コンテンツとして設定されていないように見えますが、match-parent または fill-parent です。これは事実ですか?

于 2015-07-30T14:42:25.367 に答える
1

Android の画像リソースは、iOS とは大きく異なります。

Android の画像のサイズを変更する方法を理解するには、「密度に依存しないピクセル」または略して DP を理解する必要があります。あなたはについてもっと読むことができます

http://developer.android.com/guide/practices/screens_support.html

240 x 240 ピクセルの画像は、実際の電話では、その電話の DPI の数に基づいてサイズが異なります (上記のリンクで全体のグラフを確認することもできます)。

6 つの一般化された密度のセット:

ldpi (low) ~120dpi  
mdpi (medium) ~160dpi  
hdpi (high) ~240dpi  
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi

最近のほとんどの携帯電話は、これらのサイズの mdpi、hdpi、xhdpi、xxhdi をサポートしています (各画像に異なるサイズを提供するために、これらすべてのフォルダーがあります)。

サイズが 240 x 240 px の画像を mdpi フォルダーに入れたとします。同じイメージを hdpi、xhdi、xxhdi フォルダーにも配置する必要があります。そうして初めて、すべてのデバイスで同じサイズに見えます。そうしないと、大画面の電話で見ると、ますます小さく見えます。

この式を使用してサイズを計算できますpx = dp * (dpi / 160)

または、 http://labs.rampinteractive.co.uk/android_dp_px_calculator/などのオンライン計算機を使用して計算するだけです

于 2015-07-30T15:52:18.363 に答える