android xml выдвижная половина высоты - PullRequest
1 голос
/ 03 апреля 2020

Итак, я пытаюсь добиться того, чтобы форма слоя занимала половину высоты. Вот как это выглядит: enter image description here

Я хочу, чтобы белый и зеленый точно взяли половину высоты. Это код:

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

    <item android:left="50dip">
        <layer-list>
            <item android:top="50dip">
                <shape android:shape="rectangle">
                    <solid android:color="@android:color/white"></solid>
                </shape>
            </item>
            <item android:bottom="50dip">
                <shape android:shape="rectangle">
                    <solid android:color="@android:color/holo_green_light"></solid>
                </shape>
            </item>
        </layer-list>
    </item>
    <item android:right="150dip">
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <solid android:color="#ff0000" />
        </shape>
    </item>

</layer-list>

Ответы [ 3 ]

0 голосов
/ 03 апреля 2020

Я думаю, ты хочешь вот так.

<item android:left="50dip">
    <layer-list>
        <item >
            <shape android:shape="rectangle">
                <solid android:color="@android:color/white"></solid>
            </shape>
        </item>
        <item android:height="350dip">
            <shape android:shape="rectangle">
                <solid android:color="@android:color/holo_green_light"></solid>
            </shape>
        </item>
    </layer-list>
</item>
<item android:right="150dip">
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <solid android:color="#ff0000" />
    </shape>
</item>

0 голосов
/ 03 апреля 2020

Если вы имеете в виду половину высоты экрана, вы не можете изменить ее в XML, а в коде, подобном так, и он будет обновляться при запуске приложения:

//Getting the height of the screen
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;

LayerDrawable layerDrawable = (LayerDrawable) getResources().getDrawable(R.drawable.test);
GradientDrawable gradientDrawable = (GradientDrawable) layerDrawable.findDrawableByLayerId(R.id.green_shape);
gradientDrawable.setBounds(0,0, 0, height/2); //setbottom bound to be half of the height

И xml:

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

    <item android:left="50dip">
        <layer-list>
            <item>
                <shape android:shape="rectangle">
                    <solid android:color="@android:color/white"></solid>
                </shape>
            </item>
            <item android:id="@+id/green_shape">
                <shape android:shape="rectangle">
                    <solid android:color="@android:color/holo_green_light"></solid>
                </shape>
            </item>
        </layer-list>
    </item>
    <item android:right="150dip">
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <solid android:color="#ff0000" />
        </shape>
    </item>

</layer-list>
0 голосов
/ 03 апреля 2020

Изменить последний элемент android: правильный атрибут

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...