2

私のアクティビティのレイアウトでは、背景があり、Yで繰り返す必要があります。XとYで繰り返される場合(追加するだけandroid:tileMode="repeat")、背景を繰り返すことに問題はありません。また、AndroidAPI15より上でこれを行うことに問題はありません。

RelativeLayout layout = (RelativeLayout) findViewById(R.id.container_layout);

BitmapDrawable bg = (BitmapDrawable)getResources().getDrawable(R.drawable.my_repeating_bg);
bg.setTileModeX(TileMode.REPEAT);`
layout.setBackground(bg);

ただし、このメソッドsetBackground(<BitmapDrawable>)はAndroid API <16では使用できません。Android2.3でバックグラウンドをXまたはYだけで繰り返したい場合は、どうすればよいですか?ありがとう。PS背景の幅と高さは両方ともMATCH_PARENTです。

4

2 に答える 2

5

drawableこの形式のフォルダー(または実際には任意の描画可能なフォルダー)にxmlファイルを作成できます。

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/my_repeating_bg"
    android:tileMode="repeat" />

次に、次のことを行います。

layout.setBackgroundResource(R.drawable.name_of_xml_drawable);

レイアウトの幅がに設定されている場合wrap_content、Yのみが並べて表示されます。レイアウトの高さがに設定されている場合wrap_content、Xのみが並べて表示されます。両方をに設定するmatch_parentfill_parent、XとYの両方を並べて表示します。

于 2012-08-13T13:11:03.767 に答える
4

OK、それで私は答えを見つけました。バージョンを確認して、適切な方法を使用する必要があります。

    RelativeLayout layout = (RelativeLayout) fragmentView.findViewById(R.id.container);
    BitmapDrawable bg = (BitmapDrawable)fragmentView.getResources().getDrawable(R.drawable.background);
    bg.setTileModeY(TileMode.REPEAT);
    if(Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN)
        layout.setBackgroundDrawable(bg);
    else
        layout.setBackground(bg);
于 2012-08-14T07:05:49.597 に答える