7

Android 4.1 を実行している Nexus 7 タブレットのパディングに問題があることに気付きました。具体的には、外側のストロークを作成するパディング付きのバックグラウンド ドローアブルがあります。

  <?xml version="1.0" encoding="utf-8"?>
  <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >

  <stroke
    android:width="1dp"
    android:color="#59000000" />

  <padding
    android:bottom="1dp"
    android:left="1dp"
    android:right="1dp"
    android:top="1dp" />

  </shape>

これは、1 dp の白い内側のストロークで補われます。したがって、画像全体を囲む正方形の 2 dp の境界線にする必要があります。

実際の nexus デバイス、他のいくつかのデバイス、および 7 インチのジェリー ビーン エミュレーターでテストしました。

まず、4.1 7 インチ エミュレータの動作バージョンを次に示します。 これは 4.1 用の 7 インチ タブレット エミュレーターです。

外側の境界線は均一で、画像全体を囲んでいます。これは、私が持っている他のすべてのデバイスでも機能する方法です。

ネクサス7:

パディングがめちゃくちゃな画像

灰色は背景色ですが、右と下のパディングが考慮されていないことがわかります。現在、境界線は画像によって隠されています。

問題がある場合、これらは GridView の子です。誰かがこれらの問題を見たことがあるか、またはそれらを解決する方法についてアイデアを持っているかどうか疑問に思います.

4

1 に答える 1

2

strokeこれは、XMLドローアブルでを生成する際のバグのようです。何度か試みた後、私はそれをそれに絞り込みました。ピクセル単位で指定しても、図形の下側と右側のストロークサイズが正しくないようです。ストローク幅を2dip代わりに1dip(他のすべてのものはそのまま)に変更すると、次のようになります。

ここに画像の説明を入力してください

これはborder.xml 、後の画像の背景に使用したものです。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">

    <stroke
            android:width="2dp"
            android:color="#59000000"/>

    <padding
            android:bottom="1dp"
            android:left="1dp"
            android:right="1dp"
            android:top="1dp"/>

</shape>

これも、ストローク幅を拡大したものです。良い点は、パディングが同じままであるため、これによって期待される結果がまったく変わらないことです。実際、strokeタグをに変更しsolidても同じ結果を得ることができます(ただし、画像に透明度が含まれている場合は、透明な領域に無地の背景が表示されます)。

これを試してみてください。それがあなたのためにどのように機能するか教えてください!

于 2012-07-26T04:19:46.157 に答える