2

アプリのボタンをデザイン/作成してきましたが、Google+ や Facebook などの非常に成功した商用アプリと比較すると、画質が同じに見えません。エミュレーターとデバイスのボタンを確認しました。

私は Photoshop CS5 を使用しており、RGB と 300 DPI で .png をデザインしていることを常に確認しています。 ここに画像の説明を入力

次に、押された状態とフォーカスされた状態を指定する XML でボタンを作成します。

about_btn.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/about_down"
          android:state_pressed="true" />
    <item android:drawable="@drawable/about_down"
          android:state_focused="true" />
    <item android:drawable="@drawable/about_up" />
</selector>

次に、レイアウトでボタンを次のように使用します。

main.xml

        <Button
            android:id="@+id/about_button_xml"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/about_btn"
            android:paddingTop="5dp" />

ボタンがレイアウトでスケーリングされる方法に何らかの欠陥がありますか、それともボタンを悪い形式で保存/設計していますか、間違ったソフトウェアを使用していますか....よくわかりません。

推奨する設計仕様とソフトウェアは何ですか? 提案やチュートリアルをいただければ幸いです。

4

2 に答える 2

3

m0skit0 の回答に少し具体性を追加するには: おそらく 320dpi で設計する必要があります。320dpi のバージョンを に入れ、drawable-xhdpi240 および 160 dpi のスケーリングされたバージョンを および に入れdrawable-hdpiますdrawable-mdpi。デバイスの画面の密度でリソースを提供しない場合、システム低密度の画像を拡大しようとします (または、提供されている場合は高密度の画像を縮小しようとしますが、同様にそれを行うことはめったにありません)。 Photoshop とは異なり、必要に応じて画像の奇数サイズの部分を鮮明にスケーリングする方法について判断を下すことはできません)。

フォルダーに画像のみを指定するdrawableと、システムは歴史的な理由から 160 dpi であると想定します。元の画像がぼやけ、大きすぎ、拡大されたバージョンになってしまいます。

具体的には、100px の画像drawable-mdpiまたはプレーンなdrawable画像は、スケーリングを使用して xhdpi 画面で 200px の画像としてレンダリングされます。〜320 dpi でその画像を 100 ピクセルに実際に設計した場合、100 ピクセルdrawable-xhdpiバージョンdrawable-mdpiを に、50 ピクセル バージョンを に、75 ピクセル バージョンを に配置するのが正しい方法drawable-hdpiです。

Google のサイトでは、これについて多くのことが書かれています。デザイナー情報開発者情報を参照してください。視覚的に:

スケーリングされたアイコン (上記の Android Designer サイトからのCC Attribution 2.5ライセンスの画像)。

于 2013-01-23T16:22:58.400 に答える
3

一部のデバイスでは 300 dpi を表示する方法がないため、画像をスケーリングする必要があります。これはハードウェアの制限です。

これが、異なる DPI 密度ごとに画像を提供するためにres/drawable-xdpi、 ... フォルダがある理由です。res/drawable-hdpi

このトピックの詳細については、こちらをご覧ください。

于 2013-01-23T16:18:30.773 に答える