背景
给webview 设置一个带圆角的shape,发现圆角会失效,变成直角状态。网上很多相关问题的解决方案是继承一个webview,然后重写onDraw() 方法,自己去画圆角。现在提供一个简单的方法,以供参考
思路
- 给webView的父空间设置一个圆角
- webView 布局设置一些padding(如果没有padding,圆角会失效)
实现
在webview 所在的布局文件中,添加一个RelativeLayout,使webview完全填充父布局,设置一个padding
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="3dp" // 关键
android:background="@drawable/webview_bg"> // 带圆角的一个shape
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
webview_bg 的源码如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="10dp" />
<solid android:color="#ffffff" />
</shape>
总结
该方法的实现,实际上是给webview的父控件设置了圆角,webview实际上还是不带圆角的,只是视觉上看起来有圆角了。
优点:
方法简单,迅速搞定
缺点:
webview显示的内容不能充满整个父控件,会有一些留白
view层级变多一层,影响性能