Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: dar una vista web esquinas redondeadas?

Estoy tratando de dar mi webView esquinas redondeadas.

Aquí está mi código:

Rounded_webview.xml:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="10dp"> <solid android:color="#000"/> <corners android:bottomRightRadius="15dp" android:bottomLeftRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp"/> </shape> 

Y aquí está mi webView:

 <WebView android:id="@+id/webView1" android:layout_width="293dp" android:layout_height="142dp" android:layout_gravity="center_horizontal" android:padding="5dip" android:background="@drawable/rounded_webview"/> 

¡Pero simplemente no funcionará! Las esquinas no están redondeadas …

Muchas gracias de antemano,

  • Android: Cómo rotar LinearLayout
  • Firebase getDownloadURL
  • "Acción completa usando" al intentar cargar en un WebView
  • Servicio de Android para PubNub
  • Renombrar el paquete que R.java se genera en
  • Error de Android Studio v2.2.2 (27,17) no pudo resolver junit: junit4.12
  • 'Código fuente no coincide con el bytecode' al depurar en un dispositivo
  • El depurador de Android Studio destaca las líneas incorrectas
  • 4 Solutions collect form web for “Android: dar una vista web esquinas redondeadas?”

    La única manera es wrap elemento WebView por otra vista (FrameLayout por ejemplo), y aplicar esquinas redondeadas de fondo en la vista externa. Ejemplo:

     <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="10dip" android:paddingBottom="10dip" android:paddingLeft="1dip" android:paddingRight="1dip" android:background="@drawable/white_rounded_area" > <WebView android:id="@+id/web_view" android:layout_width="300dip" android:layout_height="400dip" android:layout_gravity="center" /> </FrameLayout> 

    Donde paddingTop y paddingBottom es igual a radio de drawable / white_rounded_area , paddingLeft y paddingRight es igual a stroke width drawable / white_rounded_area .

    Menos de este enfoque es superior un fondo redondeado paneles pueden tener diferentes colores de fondo con la página web dentro de WebView, especialmente cuando la página desplazada.

    Esta es una pequeña peculiaridad de Webview, tiene un color de fondo predeterminado de blanco, dibujado en frente de cualquier drawables. Tendrás que usar el código siguiente para hacerlo transparente y mostrar tu fondo dibujable:

     WebView webview = (WebView)findViewById(R.id.webView1); webview.setBackgroundColor(0); 

    prueba esto

     <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <corners android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp" android:topLeftRadius="10dp" android:topRightRadius="10dp"/> <stroke android:color="@drawable/black" android:width="3dp"/> </shape> 

    Yo uso una imagen que se parece a un marco, donde le doy al marco las esquinas redondeadas. Yo pongo este marco sobre la vista que estoy tratando de dar a las esquinas redondeadas.

    Esto supera el problema en la solución iBog de paneles de fondo que no funcionan bien.


    El truco es usar un RelativeLayout ; Coloque su diseño dentro de él. Debajo de su diseño, agregue otro ImageView , estableciendo su background en un marco de imagen de enmascaramiento adecuado. Esto dibujará eso encima de su otra disposición.

    En mi caso, hice un archivo 9Patch que era un fondo gris, con un rectángulo redondeado transparente cortado de él.

    marco

    Esto crea la máscara perfecta para su diseño subyacente.

    El código XML podría ser algo como esto:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="fill_parent"> <!-- ... INSERT ANY VIEW HERE ... --> <!-- FRAME TO MASK UNDERLYING VIEW --> <ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:background="@drawable/grey_frame" android:layout_alignTop="@+id/mainLayout" android:layout_alignBottom="@+id/mainLayout" /> </RelativeLayout> 

    Los detalles completos se pueden encontrar en mi respuesta original aquí:

    • Android XML redondeado esquinas recortadas
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.