如何设置角落的表面视图相机背景

时间:2013-05-03 14:59:26

标签: java android

我的应用程序使用大小为150 X 150的相机表面视图布局。我需要显示表面角是弧形类型。如何在相机中设置角落。

<LinearLayout
    android:id="@+id/recordView"
    android:layout_width="100dp"
    android:layout_height="150dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="50dp"
    android:layout_marginRight="25dp" 
    android:background="@drawable/customshape">
</LinearLayout>

CUSTOMSHAPE:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
 android:shape="rectangle"> 
 <gradient android:startColor="#FFFFFF" android:endColor="#FFFFFF"         android:angle="270"/> 

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

此布局添加相机活动但记录开始显示矩形视图

3 个答案:

答案 0 :(得分:3)

查看本教程,了解如何创建Android形状并将该形状应用于您的布局: http://www.vogella.com/blog/2011/07/19/android-shapes/

具体而言,您使用<corners>的{​​{1}}属性创建圆角,请参阅上面引用的教程中的示例:

<shape>



更新2 - 这对我有用:

<强>绘制-HDPI / rounded.xml:

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

<强>绘制-HDPI / solid.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"> 

    <stroke android:width="2dp" android:color="#FFFFFFFF" />

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

    <solid android:color="#00000000" />

</shape>

<强>绘制-HDPI / rounded_inside_corners.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"> 

    <stroke android:width="2dp" android:color="#FFFFFFFF" />

    <solid android:color="#00000000" />

</shape>


然后在我的活动布局中:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:drawable="@drawable/rounded" />
    <item android:drawable="@drawable/solid" /> 

</layer-list>


结果如下:

enter image description here

答案 1 :(得分:0)

您好看看这段代码。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle" >
            <corners android:radius="15dip" />
            <solid android:color="#404f64" />
            <stroke android:width="2dp" android:color="#bebfc1"/>
        </shape>
    </item>
</layer-list>

在曲面视图中将其设置如下所示。

android:background="@layout/rounded"

答案 2 :(得分:0)

经过更多搜索后,我尝试使用cardView编写代码,该代码对我有用。

添加依赖项:

implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'

将代码添加到xml:

 <androidx.cardview.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="270dp"
            app:cardCornerRadius="10dp"
            app:cardPreventCornerOverlap="false">

            <SurfaceView
                android:id="@+id/camera_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </androidx.cardview.widget.CardView>