标签: android-canvas

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

我可以在画布上使用抗锯齿画画吗?

我可以在画布上使用抗锯齿进行绘制吗?

我需要我的圆圈和线条有光滑的边缘.

graphics android antialiasing android-canvas

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

Android画布:在图像上绘制透明圆圈

我正在创建一个像素狩猎游戏.所以我的活动显示了一个ImageView.我想创建一个提示"告诉我对象在哪里".为此,我需要模糊整个图像,除了围绕对象所在点的圆圈.而不是模糊,我可以显示一个只是半透明的黑色背景.在Canvas上绘制半透明矩形没有问题.但我不知道如何从中裁剪透明圆圈.结果应如下所示: 在此输入图像描述

请帮我在Android SDK上实现相同的效果.

android image android-canvas

49
推荐指数
3
解决办法
4万
查看次数

如何使用android画布绘制一个只有topleft和topright圆角的矩形?

我找到了一个矩形函数,所有四个角都是圆的,但我想只有前两个角.我能做什么?

canvas.drawRoundRect(new RectF(0, 100, 100, 300), 6, 6, paint);
Run Code Online (Sandbox Code Playgroud)

android draw android-canvas

47
推荐指数
12
解决办法
5万
查看次数

在android中绘制带边框的填充矩形

Android中是否有任何方法可以绘制带有黑色边框的填充矩形.我的问题是canvas.draw()接受一个绘制对象,据我所知,绘制对象不能有填充和描边的不同颜色.有没有解决的办法?

android border paint fill android-canvas

47
推荐指数
3
解决办法
7万
查看次数

如何设置渐变样式来绘制对象?

使用Style:Fill绘制箭头的代码如下:

paint.setColor(Color.parseColor("#bdc0dc"));
paint.setStyle(Style.FILL);
canvas.drawPath(arrowPath, paint);
paint.setColor(Color.BLACK);
paint.setStyle(Style.STROKE);
paint.setStrokeWidth(2);
canvas.drawPath(arrowPath, paint);
Run Code Online (Sandbox Code Playgroud)

我得到的输出是这样的:

在此输入图像描述

现在我想做的是将样式设置为Gradient(在android中没有Style.gradient ...)以获得类似于下面给出的图像的箭头:

在此输入图像描述

我该怎么做 ?我尝试在style.xml中添加样式但无法在那里添加渐变,因为它接受item作为参数..

android gradient android-canvas

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

如何在画布上的两点之间绘制圆弧?

我在画布上有两个点,现在我可以通过使用在这些点之间绘制一条线,如下图所示

这段代码 canvas.drawLine(p1.x, p1.y, p2.x, p2.y, paint); 在此输入图像描述

我想画两点之间的弧线,如下图所示.

在此输入图像描述

我怎么画这样的.

android ondraw android-canvas

46
推荐指数
3
解决办法
7万
查看次数

Android Rect对象中top,left,right和bottom的含义是什么

我有一个Android项目,我应该让苹果掉下来.苹果涂在Rect中.所以我创建了一个改变Rect位置并重新绘制的函数.这是我的功能:

private void updateApplesPosition() {
    for(Rect rect:fallingDownFruitsList)
        rect.set(rect.left, rect.top +10, rect.right, rect.bottom +10);
}
Run Code Online (Sandbox Code Playgroud)

我有一个问题:苹果不会掉下来,而是从右到左.为了让苹果落下,我改变了代码:

private void updateApplesPosition() {
    for(Rect rect:fallingDownFruitsList)
        rect.set(rect.left+10, rect.top, rect.right+10, rect.bottom);
}
Run Code Online (Sandbox Code Playgroud)

android android-canvas android-view android-shape

46
推荐指数
1
解决办法
3万
查看次数

使用clipRect - 解释

public class POCII extends Activity { 

    myView mv = new myView(this); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(mv); 
    }
}


class myView extends View { 

    public myView(Context context) { 
       super(context); 
    } 

    @Override 
    public void onDraw(Canvas canvas) { 

        Paint paint = new Paint(); 

        canvas.drawRect(0,0,100,100, paint); 
        canvas.clipRect(0,0,50,50);
    } 
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,上面的代码是否应该绘制一个矩形然后裁剪左上角?矩形没有被裁剪.

请解释一下clipRect的作用.什么是实际剪裁?在给定坐标的情况下,它是否以矩形的形式剪辑?如果是这样,为什么上面的代码不起作用?

android android-canvas android-view

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

如何使任何视图绘制到画布?

我有一个简短的问题:

假设我有一个(可变的)位图,我需要修改(添加图像,文本等...).

我没有考虑使用许多特殊的类来绘制画布(画布,画布,矩阵等),而是考虑为什么不使用Android的内置类来完成这项任务,只有当我需要真正定制的操作时,我仍然可以使用画布?

因此,例如,为了在位图上显示任何类型的视图(当然没有父视图),我可以调用下一个函数:

public void drawViewToBitmap(Bitmap b, View v, Rect rect) {
    Canvas c = new Canvas(b);
    // <= use rect to let the view to draw only into this boundary inside the bitmap
    view.draw(c);
}
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?也许这就是它在幕后工作的方式?

我应该在绘图和画布创作之间的部分写什么?


编辑:我已经尝试了下一个代码,但它没有工作:

public void drawFromViewToCanvas(final View view, final Rect rect, final Canvas canvas) {
    final int widthSpec = View.MeasureSpec.makeMeasureSpec(rect.width(), View.MeasureSpec.EXACTLY);
    final int heightSpec = View.MeasureSpec.makeMeasureSpec(rect.height(), View.MeasureSpec.EXACTLY);
    view.measure(widthSpec, heightSpec);
    // Lay the view out with the known dimensions
    view.layout(0, 0, rect.width(), rect.height());
    // …
Run Code Online (Sandbox Code Playgroud)

android bitmap mutable draw android-canvas

37
推荐指数
1
解决办法
4万
查看次数