Android: установка ширины в процентах от просмотра в RelativeLayout - PullRequest
1 голос
/ 15 июля 2011

Я использую RelativeLayout, и хочу центрировать оранжевую полосу внизу в центре и заполнить 90% ширины.Я знаю, что это возможно сделать с помощью LinearLayout, используя процент, но как мне сделать это с RelativeLayout?

Нужно ли мне программно рассчитывать, насколько широкий экран (в dp), и установить это 90%это как ширина оранжевого вида?

Короче говоря, я хочу что-то вроде этого, где оранжевая полоса занимает 90% экрана по центру в середине, используя RelativeLayout, без жесткого кодирования координат x и y, чтобы он работал на всех плотностях экрана.(Темные полосы по краю - это края телефона)

enter image description here

Ответы [ 2 ]

1 голос
/ 15 июля 2011

Просто предположение, но стоит попробовать :) Пожалуйста, измените структуру макета, как показано ниже:

<LinearLayout[with 90% width]>
    <RelativeLayout
           android:layout_width="fill_parent" 
           ...
         <!--this will fill up its parent i.e above LinearLayout which is 90% of the screen width -->
     >
           <!--child views goes here.. -->
     </RelativeLayout>
</LinearLayout>
0 голосов
/ 26 октября 2016

Использовать новую библиотеку поддержки в процентах

compile 'com.android.support:percent:24.0.0'

См. Пример ниже

    <android.support.percent.PercentRelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
     <ImageView
         app:layout_widthPercent="50%"
         app:layout_heightPercent="50%"
         app:layout_marginTopPercent="25%"
         app:layout_marginLeftPercent="25%"/>
 </android.support.percent.PercentRelativeLayout>

* для получения дополнительной информации * Tutorial1 Tutorial2 Tutorial3

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