web-dev-qa-db-ja.com

RelativeLayoutのImageViewで画像を繰り返す

ImageViewで画像をRelativeLayoutで繰り返したいです。ビットマップxmlを使用してtilemode "repeat" with RelativeLayout。インターネットで見たものはすべてLinearLayoutを扱っているためです。

ヘルプやヒントは大歓迎です。

27
Usman Kurd

Drawableフォルダにbackgroundという名前のXMLファイルを作成します

background.xml

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

相対レイアウトで、上記のXMLを背景として追加します

<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@drawable/background" />
75
Anirudh

もちろん、相対レイアウトで使用できます。 RelativeLayoutの背景として使用します。私のプロジェクトでも使用しました。

  <RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal" 
        Android:background="@drawable/top_header_bg_repeat"
        Android:gravity="center">

top_header_bg_repeat.xml (in drawable folder)
----------------------------------------------

<bitmap
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:src="@drawable/top_header"
    Android:tileMode="repeat"
    Android:dither="true"/>

Set Bitmap in ImageView
----------------------   

<ImageView 
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:src="@drawable/top_header_bg_repeat"
        Android:scaleType="fitXY"/> 

 <ImageView 
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:background="@drawable/top_header_bg_repeat"/> 
10
Chirag

はい、可能です。繰り返し画像をDrawable (bitmap)としてAndroid:tileMode="repeat"をXMLに定義し、RelativeLayoutの背景として使用します。

3
waqaslam

すべてのリクエストで、画像が大きくなり、レイアウトのサイズが小さくなると、1つの小さな問題が発生します。画像はサイズ変更されず、Xだけ繰り返します。Yで繰り返しの場合は、プログラムでのみ実行できます。

私はこのように私の問題を解決します(重力フィルを設定)

画像用のドローアブルbg

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

とレイアウト上

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="@dimen/table_cell_height">

    <ImageView
        Android:id="@+id/imageView1"
        Android:layout_width="fill_parent"
        Android:layout_height="@dimen/table_cell_height"
        Android:scaleType="fitXY"
        Android:src="@drawable/table_cells_bg"/>
<TextView
        Android:id="@+id/txtActivityTime"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentTop="true"
        Android:layout_toRightOf="@+id/avatarImage"
        Android:text="TextView"
        Android:textColor="@color/white"
        Android:textSize="@dimen/font_size_middle" />
</RelativeLayout>

そして、table_cells_bg_imgは、幅= 1px、高さ= 1pxの画像です

などのレイアウトなので、画像は背景のようになり、親レイアウトのサイズに合わせてサイズが変更されます

たぶん、助けて。私の場合にクリアするには、タイル化された背景画像をX座標で繰り返されるテーブルセルのフルサイズに並べる必要があります(iOSでできるように)。だから私は私が説明するようにそれを解決します。

2
Dmitry Nelepov