相关疑难解决方法(0)

如何在android中创建带圆角的视图

我试图在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 android-layout android-view android-shape

74
推荐指数
12
解决办法
9万
查看次数

PorterduffXfermode:清除位图的一部分

目标只是绘制一个位图,并在其顶部绘制消除位图底层区域的形状.

我创建了简单的概念证明代码,试图理解我应该如何去做.在这里的各种线程中,我发现了许多关于使用的提示:

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)

java android bitmap ondraw android-canvas

29
推荐指数
2
解决办法
2万
查看次数

是否可以在android中屏蔽View?

是否可以屏蔽视图?例如,如果我有一个设计,要求列表视图在椭圆形开口内可见.有没有办法为视图创建蒙版?它被称为其他东西吗?因为我发现在android文档中屏蔽的所有引用都在谈论屏蔽画布对象或drawable.但我不认为像列表视图这样的交互式对象的绘制是一种很好的方法.这只是现在处理的限制吗?

android

20
推荐指数
2
解决办法
2万
查看次数