Повторите изображение с помощью ImageView в RelativeLayout
Я хочу повторить изображение с ImageView
в RelativeLayout
, Можно ли использовать Bitmap xml и использовать tilemode? "repeat"
с RelativeLayout
потому что то, что я видел в интернете, все они имеют дело с LinearLayout
,
Любая помощь или совет будут тепло приветствоваться.
4 ответа
Создайте файл XML с именем background в папке Drawable
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" />
Да, конечно, вы можете использовать его с относительным расположением. Используйте это как фон вашего 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"/>
Да, это возможно. Определите ваше повторяющееся изображение как Drawable (bitmap)
с android:tileMode="repeat"
в XML и использовать его в качестве фона вашего RelativeLayout
,
Во всех запросах существует одна небольшая проблема, если ваше изображение будет большим и меньше, какого размера ваш макет, изображение не изменится, только повторить по 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). Так что я решаю это, как я описываю.