отображать форму пирамиды, используя стек прямоугольника в относительном макете - PullRequest
0 голосов
/ 11 августа 2011

У меня есть 7 файлов XML в моей папке для рисования, чтобы нарисовать 7 прямоугольников в порядке убывания размера.Каждый xml-файл является фоновым ресурсом для imageview. Это означает, что у меня 7 просмотров изображений.

Я использовал относительную компоновку, чтобы расположить их друг над другом в порядке уменьшения размера, чтобы наименьший прямоугольник был наthe top.

Вот пример xml одного из доступных для рисования xml-файлов для прямоугольника: -

   <?xml version="1.0" encoding="utf-8"?>
<shape
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="rectangle">

  <gradient
        android:startColor="#FFFF0000"
        android:endColor="#80FF00FF"
        android:angle="90"/>
        <solid
        android:color="#FFFF0000"></solid>
         <stroke android:width="1px" android:color="#cccccc" />

            <padding android:left="50dp"
        android:top="10dp"
        android:right="50dp"
        android:bottom="10dp" />
    <corners android:radius="8dp" />

</shape>

Хотя я получил стек прямоугольников с помощью атрибута "android:layout_above ". Но прямоугольники выровнены с одной стороны. Но я хочу, чтобы они не выравнивались с обеих сторон и выглядели как уменьшенные края с обеих сторон.

По сути, я хочу, чтобы все прямоугольники быливыровнен по центру так, чтобы уменьшенные края верхнего прямоугольника были видны со стороны бота нижнего прямоугольника. Но я не нахожу никаких атрибутов изображения, которые могли бы мне помочь.

Это мой относительный макет, которыйвнутри горизонтальной прокрутки: -

 <RelativeLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/desert">

        <ImageView 
            android:id="@+id/camel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="true"/>

        <ImageView 
            android:id="@+id/puppet"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_alignParentBottom="true"/>


        <ImageView 
            android:id="@+id/sun"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_alignParentTop="true"/>

        <ImageView 
            android:id="@+id/hand"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="100dp"
            android:layout_marginRight="100dp"
            android:layout_marginBottom="100dp"
            android:layout_marginTop="150dp"
            android:layout_alignParentTop="true"/>

        <ImageView
            android:id="@+id/stone1"
            android:background="@drawable/stone1"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_alignParentBottom="true"
            android:scaleType="center"
            android:layout_toRightOf="@id/sun"/>

        <ImageView
            android:id="@+id/stone2"
            android:background="@drawable/stone2"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_above="@id/stone1"
            android:scaleType="center"
            android:layout_toRightOf="@id/sun"/>
        <ImageView
            android:id="@+id/stone3"
            android:background="@drawable/stone3"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_above="@id/stone2"
            android:scaleType="center"
            android:layout_toRightOf="@id/sun" />
        <ImageView
            android:id="@+id/stone4"
            android:background="@drawable/stone4"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content" 
            android:layout_above="@id/stone3"
            android:scaleType="center"
            android:layout_toRightOf="@id/sun"/>
        <ImageView
            android:id="@+id/stone5"
            android:background="@drawable/stone5"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_above="@id/stone4"
            android:scaleType="center"
            android:layout_toRightOf="@id/sun" />
        <ImageView
            android:id="@+id/stone6"
            android:background="@drawable/stone6"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_above="@id/stone5"
            android:scaleType="center"
            android:layout_toRightOf="@id/sun" />
        <ImageView
            android:id="@+id/stone7"
            android:background="@drawable/stone7"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_above="@id/stone6"
            android:scaleType="center"
            android:layout_toRightOf="@id/sun" />
    </RelativeLayout>

Ответы [ 3 ]

0 голосов
/ 12 августа 2011

Возможно, вы захотите установить android:gravity в вашем относительном макете

0 голосов
/ 12 августа 2011

Я решил проблему, установив "android: layout_marginLeft" , чтобы приблизить значения, т. Е. Наименьший прямоугольник был самым дальним от левого, а наибольший прямоугольник был ближайшим, и каждый соседний прямоугольник имел разницу в 5 dp от вышеуказанного параметра.И я получил пирамиду:)

0 голосов
/ 12 августа 2011

Покажите нам относительную компоновку, вы хотите установить одно из следующих значений для ваших изображений (прямоугольники):

 android:layout_centerHorizontal="true"

или

 android:layout_centerInParent="true"
...