5

これを序文にするには:

これをgraphicdesgin.stackexchange.comに置くことを考えましたが、Android固有の質問は最適な場所ではないかもしれないという結論に達しました. それが私がstackoverflowを選んだ理由です。なぜなら、それはグラフィック自体よりもAndroidのimageViewsに問題があるように思われるからです。ありがとうございました。



Android アプリケーションでいくつかの基本的なアイコンを使用する必要があります。私は Illustrator と Photoshop を持っています (どちらも得意ではありませんが、何とかやっていけます)。たまたまhttp://www.androidicons.com/にたどり着き、わずか 25 ドルで何時間もの時間を節約できる素晴らしいチャンスを見つけました。アプリケーションでそれらを使用するために何をしなければならないかを理解するために、無料の「BONUS ICONS 01」パックをダウンロードしました。

ここに画像の説明を入力

時計アイコンを使用して、アプリケーションでどのように機能するかを確認することにしました。Illustratorでアイコンを800px程度に拡大し、Photoshopにコピペします。これを .png として保存し、これをテストするためのサンプル アプリケーションを作成しました。

画像は xhdpi フォルダーにのみ配置されました。これは、おそらくこのアイコンをアクション バーよりも大きなものに使用する予定であり、画面全体を占めるものには使用しないためです。私の頭の中のアイデアは、すべての個別の dpi レベルのアクション バー アイコンを作成する場合、作成するサイズ (ピクセル単位) を正確に把握しなければならないということです。たとえば、Google からアクション バー アイコンをダウンロードすると、1 つのサイズだけでなく、いくつかのサイズで提供されます)。しかし、それよりも大きなものに使用される場合はどうなるでしょうか。それらを作るためのサイズをどのように知ることになっていますか。

この主題を理解できないという私の欲求不満を本当に示すために。これが私のアプリのコードで、Galaxy Nexus でどのように表示されるかの結果です。大きいアイコンは問題ありませんが、小さいアイコンは鮮明に見えません。これを修正するにはどうすればよいですか? Illustrator で画像を作成し、Photoshop に移動して、どのサイズでも見栄えがよくなることを確認する適切な方法は何ですか?

心から、

グラフィックを理解していないだけの Android 開発者。

ここに画像の説明を入力

ご覧のとおり、画像が大きい場合はかなりきれいに見えますが、小さい場合に使用すると、IMO でいくつかの問題が発生します。それを修正する方法はありますか?私はうるさいですか?サイズを小さくしてmdpiに入れても、レイアウトはそれを拾いますか?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center|center_horizontal" >

            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/anti_huge"
                android:layout_weight="1" />

            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/anti_huge"
                android:layout_weight="1" />
            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/anti_huge"
                android:layout_weight="1" />
            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/anti_huge"
                android:layout_weight="1" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center|center_horizontal" >

            <ImageView
                android:id="@+id/imageView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/anti_huge" />

        </LinearLayout>

    </LinearLayout>

</RelativeLayout>

質問の要約:

  1. しかし、それよりも大きなものに使用される場合はどうなるでしょうか。(「それ」 = ActionBarIcons)
  2. それらを作るためのサイズをどのように知ることになっていますか? (ActionBarIcons は、設定されたピクセル寸法で Google から提供されます。どのようにしてそれらの寸法を計算したのですか)
  3. これを修正するにはどうすればよいですか? (テスト アプリケーションの大きなアイコンは正常に見えますが、小さなアイコンはギザギザに見えます)
  4. Illustrator で画像を作成し、Photoshop に移動して、どのサイズでも見栄えがよくなることを確認する適切な方法は何ですか?
  5. それを修正する方法はありますか?
  6. 私はうるさいですか?(教えてください私は... この試練は私を殺しています。)
  7. サイズを小さくしてmdpiに入れても、レイアウトはそれを拾いますか?
4

2 に答える 2

3

あなたはそれを正しくやっていません;)

Android は、可能な限り最も近い一致から画像をスケーリングします。(非常に大きな) ビットマップを 1 つだけ指定すると、Android はそれを要求された小さいサイズにスケーリングします。そのようにすると、アンチエイリアスが失われ、アイコンはあなたのように見えます。

あなたがしたいことは、pngを使用するときに実際に必要な(物理的な)サイズにエクスポートしてから、必要な画面密度にエクスポートすることです。

タップ可能な領域の推奨される最小サイズは 40x40dp で、これは 1/4 インチの正方形に変換されます。おそらく、10% の境界線を使用するため、mdpi で 32x32 ピクセルのアイコンになります。

したがって、mdpi (160dpi) の場合は 32x32、ldpi (120dpi) の場合は 24x24、hdpi (240dpi) の場合は 48x48、xhdpi (320dpi) の場合は 64x64 でベクター画像をレンダリングします。

同じアイコンをさらに大きくしたい場合は、別のアセットとしてレンダリングします。たとえば、時計の 2x2 インチの透かしが必要な場合、mdpi などでは 320x320px でレンダリングします。

レイアウトで画像を 200 dp x 200 dp として指定すると、Android はデバイスの解像度に基づいて正しい画像を画面に表示します。

反復レンダリングの一部には、Android Asset Studioを使用します。色、アイコン、効果などを設定でき、すべての解像度のアイコンのセットをダウンロードできます。

于 2012-12-24T04:54:06.160 に答える
2

ActionBar アイコンのサイズは、Android DevelopersのAction Bar Iconsセクションで指定されています。

あなたは

  • プロジェクトの xhdpi リソース フォルダー内の 48x48 ピクセルのアイコン
  • hdpi フォルダーの 36x36
  • mdpi フォルダーの 24x24 アイコン

しかし、あなたの質問が正しいと理解できれば、これらの画像の 1 つを取得して、たとえばアクティビティの背景として大きなバージョンを作成する方法を知りたいと思うでしょう。

  • まず、画像のベクター バージョンが必要です。イラストレーターで開きます。
  • 出発点としてdpiを選択します。たとえば、hdpiです。hdpi デバイスの背景として適切に見えるサイズの Illustrator から png ファイルを作成します。これは審美的な選択であり、正しいも間違いもありません。サイズが 300 x 300 ピクセルだとしましょう。
  • hdpi デバイスでの画像の外観が気に入ったら、その画像をプロジェクトの hdpi リソース フォルダーに配置します。
  • mdpi フォルダーのサイズの 0.75 倍、つまり 225 x 225 ピクセルのバージョンを作成します。
  • xhdpi フォルダーのサイズの 1.5 倍、つまり 450 x 450 ピクセルのバージョンを作成します。

イラストレーターでこれを行う方法:

  • ベクター画像を作成/開きます。
  • ファイル > Web とデバイス用に保存
  • [画像サイズ] タブを選択し、hdpi に 100 パーセントを入力します
  • 保存。mdpi の場合は 75%、xhpdi の場合は 150% でやり直します。

ここに画像の説明を入力

于 2012-12-24T05:17:24.980 に答える