我试图在android中创建一个圆角边的视图.到目前为止我找到的解决方案是定义一个带圆角的形状,并将其用作该视图的背景.
这就是我所做的,定义一个drawable,如下所示
<padding
android:top="2dp"
android:bottom="2dp"/>
<corners android:bottomRightRadius="20dp"
android:bottomLeftRadius="20dp"
android:topLeftRadius="20dp"
android:topRightRadius="20dp"/>
Run Code Online (Sandbox Code Playgroud)
现在我用它作为我的布局的背景如下
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
android:clipChildren="true"
android:background="@drawable/rounded_corner">
Run Code Online (Sandbox Code Playgroud)
这很好用,我可以看到视图有圆角.
但我的布局中有许多其他子视图说一个ImageView或一个MapView.当我在上面的布局中放置一个ImageView时,图像的角不会被剪裁/裁剪,而是显示为满.
我已经看到了其他解决方法,使它像这里解释的那样工作.
但有没有一种方法可以为视图设置圆角,并且所有子视图都包含在具有圆角的主视图中?
谢谢.
目标只是绘制一个位图,并在其顶部绘制消除位图底层区域的形状.
我创建了简单的概念证明代码,试图理解我应该如何去做.在这里的各种线程中,我发现了许多关于使用的提示:
android.graphics.PorterDuff.Mode.CLEAR
Run Code Online (Sandbox Code Playgroud)
下面的代码只是创建一个蓝色背景的屏幕,并添加自定义视图.此视图在其画布上绘制粉红色背景,位图图像(带有轻微边框以显示粉红色背景),黄色覆盖圆圈表示每个PorterDuffXfermode.
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PorterDuffXfermode;
import android.graphics.Paint.Style;
import android.graphics.PorterDuff.Mode;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.RelativeLayout;
public class Test extends Activity {
Drawing d = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
RelativeLayout.LayoutParams rlp = null;
// Create the view for the xfermode test
d = new Drawing(this);
rlp = new RelativeLayout.LayoutParams(600, 900);
rlp.addRule(RelativeLayout.CENTER_IN_PARENT);
d.setLayoutParams(rlp);
RelativeLayout rl = new RelativeLayout(this); …Run Code Online (Sandbox Code Playgroud) 是否可以屏蔽视图?例如,如果我有一个设计,要求列表视图在椭圆形开口内可见.有没有办法为视图创建蒙版?它被称为其他东西吗?因为我发现在android文档中屏蔽的所有引用都在谈论屏蔽画布对象或drawable.但我不认为像列表视图这样的交互式对象的绘制是一种很好的方法.这只是现在处理的限制吗?