私はView
背景として使用しているタイルビットマップを持っています。このView
は、android:layout_height="wrap_content"
です。問題は、バックグラウンドで使用されているビットマップの高さがビューの測定に関与しており、高さがView
であることです。これは、コンテンツのサイズがView
であるときに、タイルの背景として使用されるビットマップの高さよりも小さいことに気付くことができる。タイル張りの背景がそれを押しています。表示サイズ
例を示しましょう。タイルビットマップ:
ビットマップ描画可能(tile_bg.xml
):
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/tile"
android:tileMode="repeat"/>
レイアウト:
それがどのように見えるか<?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"
android:background="#FFFFFF">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/tile_bg"
android:text="@string/hello"
android:textColor="#000000" />
</LinearLayout>
:
TextView
の高さは、ビットマップの高さになります。私が期待していたのは、ビットマップがView
のサイズにクリップされるということです。
これを達成する方法はありますか?
注:
- 背景がタイルのファッションのように繰り返される必要があるので、私はオプションではありませんストレッチ、ドローアブルを9patch使用することはできません。私は
View
の大きさがより小さいときに前に説明したよう - 私は
View
のための固定の高さを設定することはできません、それは子供の依存(私はViewGroup
でこれを使用しています) - この奇妙な動作が起こりますビットマップのサイズでなければ、ビットマップは正しくクリップされます(つまり、ビューのサイズがビットマップのサイズの1.5倍であれば、ビットマップの1.5倍になります)。
- この例では高さを扱いますが、幅は同じです。
優秀な回答、ありがとう! – aromero