1

私はAndroid2.2でしばらくの間アプリケーションに取り組んできましたが、かなり満足しています。しかし、技術は進歩し、HoneycombとICSで動作するように老婆をアップグレードする時が来ました...

正しく見えないものの1つは、画面上のボタンです。イライラしますが、以前のように見せるための方法が見つからないようです。私のボタンは、実際のグラフィックではなく、XMLファイルであるカスタムドローアブルを使用しています。次のようになります。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <gradient
                android:startColor="#444444"
                android:endColor="#444444" />

            <stroke
                android:width="1dip"
                android:antialias="true" 
                android:color="@android:color/white" />

            <corners
                android:radius="8dip" />

            <padding
                android:left="2dip"
                android:top="2dip"
                android:right="2dip"
                android:bottom="2dip" />
        </shape>
    </item>
</selector>

ボタンは、次のようにlayout.xmlファイルでこのコードを取得します。

<Button
    android:id="@+id/button1"
    android:layout_weight="1"
    android:layout_width="1dp"
    android:layout_margin="2dp"
    android:longClickable="true"
    android:visibility="invisible"
    android:layout_height="fill_parent"
    android:background="@drawable/def_gray"
    android:layout_gravity="center_vertical"
    android:textColor="@android:color/white"
    android:gravity="center_horizontal|center_vertical" />

これは、白い境界線と灰色の中心を持つ、見栄えの良い、プロ並みの角の丸い長方形のボタンを作成するために使用されていました。ただし、Samsung Galaxy Tab 2(ICSを実行)でコードを実行しているので、境界線の丸みを帯びた部分は白ではなく、灰色で、見栄えが悪くなっています。ストロークを2dipに太くすると、角が白くなることを発見しましたが、ソフトウェアの以前のバージョンの外観を維持したいと思います。

経験から、ペイントとキャンバスを使用して曲線で何かを描画している場合、この問題の答えはアンチエイリアシングがオンになっていることを確認することであることがわかりました。ただし、XML用のandroid:antialiasキーがありますが(セクションで確認できますが、機能しません)、使用方法がわかりません。

誰か提案はありますか?

ありがとう、R。

4

3 に答える 3

0

私が見つけた唯一の答えは、白い輪郭のサイズを1dpから2dpに拡大することでした。これがうまくいくと思う理由は、曲線のカラーエイリアシングですが、問題に直接対処することはできませんでした。最初は、それは本当に私が望んでいた外観ではありませんでしたが、それは私に成長しました。

于 2012-09-12T15:09:25.923 に答える
0

これは単に画面の品質である可能性があります。あるいは、境界と中心の間のエイリアシングである可能性があります。

このコードはエイリアシングを回避する可能性があります。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape>
            <gradient
                android:endColor="#444444"
                android:startColor="#444444" />

            <corners android:radius="8dip" />
        </shape>
    </item>
    <item>
        <shape>
            <solid android:color="#00000000"/>

            <stroke
                android:antialias="true"
                android:width="1dip"
                android:color="@android:color/white" />

            <corners android:radius="8dip" />
        </shape>
    </item>
</layer-list>
于 2012-06-27T14:45:07.113 に答える
0

このアンチエイリアス処理された外観を持たない9パッチドローアブルを作成できます。

于 2015-03-05T20:58:44.117 に答える