わかりやすくするために、この質問は大幅に編集されています。
100x100pxの.pngリソースがあるとしましょう。
その画像をsの背景として使用したいと思いTextView
ます。このサイズは、実行時に可変であるコンテンツによって決定されます。特に、TextView
サイズが100x100pxより大きい場合はその画像を並べて表示し、100x100pxTextView
より小さい場合は画像をトリミングする必要があります。
後者は難しいようです。
サンプルコード
ドローアブルリソースがありbg_tile.xml
ます:
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/bg"
android:tileMode="repeat" />
私のレイアウトファイル:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@drawable/bg_tile"
android:text="Short text"
android:textSize="20sp" />
<TextView android:layout_margin="8dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_tile"
android:text="Long text long text long text long text long text long text long text long text long textlong text long text long text long text long text long text long text long text long textlong text long text long text long text long text long text long text long text long text "
android:textSize="20sp" />
</LinearLayout>
何が起こっていますか
これがこのコードの結果のスクリーンショットであり、私が期待するもの/私が望むものの1つです:
ご覧のとおり、タイリング部分が機能し、下のタイルが切り取られています。ただし、TextView
が背景よりも小さい場合、は背景TextView
のサイズになります。
推奨される解決策
android:gravity="clip_vertical|clip_horizontal"
-これは、タイルモードがなくても機能しません。- レイアウトパラメータとして使用
match_parent
-オプションではありません。 TextView
固定の高さを設定する-コンテンツの長さ、およびそのサイズを知る方法はありません。
どうすれば目標を達成できますか?