Android SDK中Rect和RectF有什么区别?
我可以在画布上使用抗锯齿进行绘制吗?
我需要我的圆圈和线条有光滑的边缘.
我正在创建一个像素狩猎游戏.所以我的活动显示了一个ImageView.我想创建一个提示"告诉我对象在哪里".为此,我需要模糊整个图像,除了围绕对象所在点的圆圈.而不是模糊,我可以显示一个只是半透明的黑色背景.在Canvas上绘制半透明矩形没有问题.但我不知道如何从中裁剪透明圆圈.结果应如下所示:

请帮我在Android SDK上实现相同的效果.
我找到了一个矩形函数,所有四个角都是圆的,但我想只有前两个角.我能做什么?
canvas.drawRoundRect(new RectF(0, 100, 100, 300), 6, 6, paint);
Run Code Online (Sandbox Code Playgroud) Android中是否有任何方法可以绘制带有黑色边框的填充矩形.我的问题是canvas.draw()接受一个绘制对象,据我所知,绘制对象不能有填充和描边的不同颜色.有没有解决的办法?
使用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作为参数..
我在画布上有两个点,现在我可以通过使用在这些点之间绘制一条线,如下图所示
这段代码 canvas.drawLine(p1.x, p1.y, p2.x, p2.y, paint);

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

我怎么画这样的.
我有一个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) 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的内置类来完成这项任务,只有当我需要真正定制的操作时,我仍然可以使用画布?
因此,例如,为了在位图上显示任何类型的视图(当然没有父视图),我可以调用下一个函数:
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 ×10
android-canvas ×10
android-view ×2
draw ×2
antialiasing ×1
bitmap ×1
border ×1
fill ×1
gradient ×1
graphics ×1
image ×1
mutable ×1
ondraw ×1
paint ×1
rect ×1