Набор представлений изображений, не подходящих для ландшафтного режима

#android #imageview #orientation #landscape

#Android #просмотр изображений #ориентация #пейзаж

Вопрос:

У меня есть набор из 10 видов изображений, которые необходимо установить в верхней части экрана. В портретном режиме он идеально подходит в соответствии с требованиями. Но когда я меняю ориентацию экрана на альбомную, количество изображений остается прежним, но по ширине не соответствует макету. Я имею в виду, что набор из 10 изображений заполняет только 50% экрана.

Я пробовал много разных способов, но все же я не могу сделать это для ландшафта

Вот мой XML-файл main.xml

 <RelativeLayout android:id="@ id/relativeLayout1" 
 android:layout_width="fill_parent" android:layout_height="fill_parent" 
 xmlns:android="http://schemas.android.com/apk/res/android">

<LinearLayout 
android:layout_alignParentTop="true"
android:id="@ id/progresslayout" 
android:orientation="horizontal"
android:layout_width="wrap_content" android:layout_height="wrap_content">

 <ImageView android:src="@drawable/progressgreen" android:id="@ id/pb1"
    android:layout_height="wrap_content" android:layout_width="wrap_content"
    android:layout_alignParentLeft="true"></ImageView>


<ImageView android:src="@drawable/progressgreen" android:id="@ id/pb2"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"></ImageView>

<ImageView android:src="@drawable/progressgreen" android:id="@ id/pb3"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"></ImageView>

<ImageView android:src="@drawable/progressgreen" android:id="@ id/pb4"
    android:layout_toRightOf="@ id/pb3" android:layout_height="wrap_content"
    android:layout_width="wrap_content"></ImageView>

<ImageView android:src="@drawable/progressgreen" android:id="@ id/pb5"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"></ImageView>

<ImageView android:src="@drawable/progressgreen" android:id="@ id/pb6"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"></ImageView>

<ImageView android:src="@drawable/progressgreen" android:id="@ id/pb7"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"></ImageView>

<ImageView android:src="@drawable/progressgreen" android:id="@ id/pb8"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"></ImageView>

<ImageView android:src="@drawable/progressgreen" android:id="@ id/pb9"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"></ImageView>

 <ImageView android:src="@drawable/progressgreen" android:id="@ id/pb10"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"></ImageView>

    </LinearLayout>

    </RelativeLayout>
  

Я попытался также предоставить свойство android:layout_weight=» «, но все равно бесполезно. И интересная вещь, которую я заметил здесь, это то, что вместо просмотра изображения, если я попробую то же самое с помощью какой-либо кнопки или редактирования текста, он отлично работает как для портретной, так и для альбомной ориентации

Комментарии:

1. ширина и высота вашего линейного представления также должны быть такими, как android:layout_width=»fill_parent» android:layout_height=»fill_parent»

2. @Падма Кумар, я пробовал это

Ответ №1:

Вот и все

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@ id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
    android:id="@ id/progresslayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:orientation="horizontal" >

    <ImageView
        android:id="@ id/pb1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <ImageView
        android:id="@ id/pb2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <ImageView
        android:id="@ id/pb3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <ImageView
        android:id="@ id/pb4"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <ImageView
        android:id="@ id/pb5"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <ImageView
        android:id="@ id/pb6"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <ImageView
        android:id="@ id/pb7"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <ImageView
        android:id="@ id/pb8"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <ImageView
        android:id="@ id/pb9"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <ImageView
        android:id="@ id/pb10"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" >
    </ImageView>
</LinearLayout>
  

android:src="@drawable/ic_launcher" Не забудьте заменить свой ресурс изображения. Это создаст десять изображений поверх экрана, красиво расположенных друг между другом.

Если вам не нужен пробел между изображениями, используйте android:scaleType="fitXY" свойство для каждого изображения. Удачи.

Комментарии:

1. Я пробовал это. В этом случае изображения подходят, но изображение не видно. Если я задам вес как 0 или 0,2 вместо 1, то изображения появятся, но не будут соответствовать макету

2. Вы пробовали с другими изображениями? Я протестировал перед публикацией здесь.

3. Да, я пробовал с другими изображениями. Это происходит только для представлений изображений, для таких полей, как редактировать текст или кнопка, это работает

4. Я имел в виду этот ресурс @drawable/progressgreen . В моем коде я использую @drawable/ic_launcher . Работает нормально.

5. Да, я понял, но для меня это остается таким же, как и раньше. Изображение не отображается, если я задаю вес как 1, но я вижу наличие изображений. Вы пробовали ровно с 10 наборами изображений. Потому что я хочу, чтобы одинаковое количество изображений соответствовало макету как в портретном, так и в альбомном режимах

Ответ №2:

В теге Linearlayout удалить

android: ориентация = «горизонтальная»

атрибут и изменение

android:layout_width=»wrap_content»

Попробуйте

Ответ №3:

Попробуйте использовать android:layout_weight="1" и android:layout_width="fill_parent" . Это гарантирует, что все объекты будут иметь общую ширину макета, и каждый из них занимает одинаковое пространство.

Ответ №4:

Попробуйте,

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@ id/relativeLayout1"
android:weightSum="2"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
    android:id="@ id/progresslayout"
    android:layout_weight="1"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:weightSum="10"
    android:orientation="horizontal" >
 // Your ImageViews Here
    <ImageView  
    android:id="@ id/pb10"  
    android:layout_weight="1"
    android:layout_width="0dp"  
    android:layout_height="fill_parent"  
    android:src="@drawable/image1" >  
    </ImageView>  

</LinearLayout>
</LinearLayout>
  

Комментарии:

1. родительским элементом внутреннего линейного макета должен быть только относительный макет

2. могу ли я узнать, почему это необходимо? и вы говорите о макете, содержащем 10 изображений?

3. Нет, я говорю о самой внешней линейной компоновке, которая содержит внутреннюю компоновку. Это всего лишь часть всего макета. Многие другие вещи связаны с внешним относительным расположением, поэтому необходимо

4. затем поместите относительную компоновку над этим внешним линейным макетом, что означает сохранение того же кода, напишите RelativeLayout сверху и укажите height width fill_parent