Подтвердить что ты не робот

Как установить границу для веб-просмотра Android

В моей программе webview загружается в отдельный макет при нажатии кнопки. этот макет имеет только этот веб-просмотр. Я хочу добавить границу для этого. Я добавляю отдельный XML следующим образом для фона для этого веб-представления, но не работает.

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<stroke android:width="10dp" android:color="#000000" />
<padding android:left="2dp" android:top="2dp" android:right="2dp"android:bottom="2dp"/>
</shape>

как я могу добавить границу для веб-просмотра в Android..? спасибо

4b9b3361

Ответ 1

Закройте WebView в макете, добавьте рамку в макет и сохраните пробел в 2dp в макете.

Ответ 2

Сам WebView не может иметь Drawable в качестве фона - см. WebView.onDraw в WebView.java. Он имеет только сплошной цвет, по умолчанию или взят из html-содержимого. Решение (как уже было предложено) сделать WebView дочерним по отношению к другому виджету.

Ответ 3

Ответ Abhinav на правильном пути, я просто добавляю эту дополнительную информацию для абсолютных новичков, таких как я, которые сталкиваются с этим ответом и даже не знают, как "заключить WebView в макет" или "добавить границу к Макет"; надеюсь, это может помочь кому-то:

  • Создайте новый каталог под /res и назовите его drawable (у вас уже есть drawable-hdpi, drawable-mdpi и т.д., для разных разрешений - этот новый каталог drawable будет использоваться независимо резолюции).
  • Создайте новый XML файл под drawable и назовите его border.xml (в Android Studio вы можете щелкнуть правой кнопкой мыши по каталогу drawable и нажать "Создать" > "Ресурс ресурса" ).
  • Вставьте все содержимое miuranga XML в border.xml и сохраните его. Это называется "ресурсом, пригодным для рисования", и на следующем шаге он будет втянут в ваш файл макета.
  • В вашем файле макета создайте новый макет вокруг WebView, как я сделал, как показано ниже, с дочерним LinearLayout. Обратите внимание, что LinearLayout извлекает ресурс с атрибутом android:background, установленный в @drawable/border. Я верю, что извлечение border.xml по имени файла за вычетом расширения. Добавив границу к макету, которая охватывает WebView, вы визуально достигаете границы вокруг Webview, которая прекрасно работает.

contents_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context="com.example.test.app.MainActivity"
   android:orientation="vertical">
<LinearLayout android:background="@drawable/border"
                  android:layout_width="match_parent"
                  android:layout_height="380px">
    <WebView xmlns:android="http://schemas.android.com/apk/res/android"
                        android:id="@+id/webview"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent" />
     </LinearLayout>
</LinearLayout>