如何切割子布局的边框?

时间:2011-11-04 17:36:22

标签: android webview android-linearlayout

我的形状背景和WebView里面有 LinearLayout 。如何沿形状的边界剪切WebView?

我希望WebView适合形状,因此WebView不会有任何锐角。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="5dip" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg_border"
    android:orientation="vertical" >

    <WebView android:id="@+id/webview" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" />

    </LinearLayout>
</LinearLayout>

bg_border.xml

<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
<stroke
    android:width="1dp"
    android:height="1dp"
    android:color="@color/border" />

<corners
    android:radius="5dp"
    android:bottomRightRadius="5dp"
    android:bottomLeftRadius="5dp"
    android:topLeftRadius="5dp"
    android:topRightRadius="5dp" />

enter image description here

1 个答案:

答案 0 :(得分:0)

我敢打赌你只能模拟那个。创建具有(较小)半径的另一个形状,并使其变为白色。把它放在你的网络视图周围。如果您正在查看的页面不是白色,这显然不起作用。

此外,如果您已经定义了“radius”并且所有值都相同,则无需定义topLeft / bottomRight / etc。

更新 思想。它们都涉及源图像LIKE:http://www.noiseindustries.com/downloads/misc/FxFactoryHelp/pluginguide/generators/roundedrectangle/files/ni-rounded-rectangle.jpg

确保边框小一些。 3-5像素。白色中心应该是透明的,而不是白色。

1)创建RelativeLayout,并为边和角创建图像。使用布局和图像,基本上布置图像,以便“绘制”边框。不要把任何东西放在中心。创建一个FrameLayout,将webview放入,然后将RelativeLayout置于顶部。希望中心的触摸事件会落到网页视图中,但仍会在边缘附近给你一个柔和的边框。

2)创建一个9补丁图像,其基本上与1中描述的边框相同。执行1中描述的相同FrameLayout,并添加Webview。最重要的是,添加一个CUSTOM视图。将背景设置为9补丁,并确保自定义视图传递其所有触摸事件。

我怀疑#1会更容易实现,但谁知道呢?