#java #android #android-layout
#java #Android #android-макет
Вопрос:
Я разрабатываю приложение для Android, макет показан на изображении ниже :
Скриншот http://www.lebanon-trading-center.com/daymanager/layout.PNG
Макет содержит 2 основных линейных макета: горизонтальный макет, который занимает 90% высоты устройства, и вертикальный макет, который занимает 10% от него. Внутри горизонтального linearlayout есть три linearlayout (два красных и один, содержащий imageview). Каждый красный макет составляет 10% от ширины экрана, а тот, который содержит ImageView, составляет 80%. Вот XML-код :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="1" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="0.9"
android:weightSum="1"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="0.1"
android:background="#ff0000" >
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:layout_weight="0.8" >
<ImageView
android:id="@ id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:src="@drawable/ic_launcher" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="0.1"
android:background="#ff0000" >
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.1"
android:background="#000000" >
</LinearLayout>
</LinearLayout>
Проблема в том, что когда я устанавливаю изображение PNG (1036 пикселей X 730 пикселей) в качестве источника для ImageView, ImageView будет поверх нижнего linearlayout (черного), а два красных макета будут сжаты.
Скриншот http://www.lebanon-trading-center.com/daymanager/layout2.PNG
Мой вопрос в том, как я могу решить проблему и использовать одинаковые макеты на всех типах планшетов?
Комментарии:
1. можете ли вы опубликовать изображение макета, где при установке изображения png (1036 пикселей X 730 пикселей)
Ответ №1:
Try this way,hope this will help you to solve your problem.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="0.90">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="0.10"
android:background="#ff0000" >
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:layout_weight="0.80" >
<ImageView
android:id="@ id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="0.10"
android:background="#ff0000" >
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="vertical"
android:layout_weight="0.10"
android:background="#000000" >
</LinearLayout>
</LinearLayout>
Комментарии:
1. Большое спасибо, это сработало, могу ли я обойти это, чтобы изображение не растягивалось?
2. Конечно, замените это: android:scaleType=»fitXY» на это: android:adjustViewBounds=»true» на ImageView
3. Еще раз спасибо, Хареш!
4. @user3012088 К вашему сведению, вложенные веса плохо влияют на производительность. Но я думаю, что другого выбора нет 🙂
5. Спасибо, я приму это во внимание