1

私が作成したレイアウトで、x 方向にタイル張りの背景を作成したいと思います。オンラインで見つけたいくつかの適切な指示に従って正しく並べて表示しましたが、ソース画像は垂直方向にかなり引き伸ばされています。ビットマップファイルタイプの性質に関係していると思います。

例の写真:

ここに画像の説明を入力

最初の画像はタイリング前の背景画像です。2枚目の画像は貼り付け後です。ご覧のとおり、画像は縦方向にかなり引き伸ばされており、サイズ変更により少しぼやけて見えます。

drawable-hdpi と drawable フォルダーの両方に画像を配置してみました。XML ファイルを両方のフォルダーに配置しようとしました。それはどれも問題ではないようでした。

これら 2 つの画像を生成したレイアウトのコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dip"
    android:background="@drawable/bg" />
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dip"
    android:background="@drawable/bg_repeat" />
</LinearLayout>

「@drawable/bg」は実際の画像そのもの、bg.pngです。「@drawable/bg_repeat」は、次のビットマップ XML ファイルです。

<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/cdetail_bg_unclaimed_details"
android:antialias="false"
android:dither="false"
android:filter="false"
android:gravity="center|center_vertical"
android:tileMode="repeat" />

x-repeat タイリングにこれに代わるものはありますか? それとも、まだ調べていない回避策がありますか? アンチエイリアス、ディザ、フィルターなどのすべてのオプションを変更しましたが、何も変わっていないようです。

助けてくれてありがとう!

編集: これは、グラフィカル レイアウト ツールを使用したバグのようです。私の電話では問題ないようです。

4

2 に答える 2

0

これは、グラフィカル レイアウト ツールを使用したバグのようです。私の電話では問題ないようです。

于 2011-06-15T14:17:36.037 に答える
0

xml を使用して一方向にビットマップの背景を繰り返すことはできませんが、Java コードは確実にそれを行うことができます。

BitmapDrawable bitmap = (BitmapDrawable) getResources().getDrawable(R.drawable.image);
 bitmap.setTileModeX(TileMode.REPEAT);

したがって、この「ビットマップ」を任意のビューの背景に設定すると

例: TextView "text" がある場合、text.setBackgroundDrawable(bitmap) はこのテキスト ビューの背景
を "bitmap" に設定します。

x方向に繰り返されますが、y方向の高さは保持されます

お役に立てれば。

于 2013-06-26T11:36:16.043 に答える