Я хочу разместить WebView вместо экрана «телевидение» (как показано на рисунке ниже). Я хочу, чтобы «телевизор» всегда был полностью виден на планшете (он должен масштабировать телевизор в целом).Scaling LinearLayout в Android
У меня есть 4 кадра телевизора.
Верхняя и нижняя рама:
- не имеют одинаковую высоту
- имеют одинаковую ширину
левый и правый кадр:
- дону 't имеют одинаковую ширину
- имеет одинаковую высоту
Телевидение должно иметь соотношение ширины/высоту.
Я попытался следующий макет, но он работает только на большом экране и не масштабируется все на меньших размерах экрана планшета.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="25px"
android:minHeight="25px">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:minWidth="25px"
android:minHeight="25px">
<ImageView
android:src="@drawable/top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView1" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout1">
<ImageView
android:src="@drawable/left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView3" />
<android.webkit.WebView
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/webView1" />
<ImageView
android:src="@drawable/right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView4" />
</LinearLayout>
<ImageView
android:src="@drawable/bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView2" />
</LinearLayout>
</LinearLayout>
Прежде чем даже не глядя на то, как решить эту проблему, я могу вам сказать, что мой первый подход * не будет * вложенные линейные макеты это очень плохо по многим причинам. , в основном производительность. Мой первый подход - RelativeLayout. чтобы убедиться, что ConstraintLayout может помочь мне с ограничением AspectRatio, которое он поддерживает. –
@pskink Я не смог бы установить правильные поля для webview. – Noturab
Имейте в виду, что использование 9patch приятно, но приведет к перегрузке (потому что веб-представление будет поверх ImageView). Это может или * не может быть проблемой, в зависимости от вашего случая. –