我正在尝试在矩形内绘制矩形。我希望孩子在父矩形的下侧绘制,但发生了相反的情况。实际上我发现,在canvas.drawRect内部没有特定的位置来决定在哪里绘制。可能是因为 android 中的新功能我错过了一些东西。这是我正在使用的 api-
canvas.drawRect(x+(x/3)+rM.x(), y/9, w-rM.width(), h/5, paint);
Run Code Online (Sandbox Code Playgroud)
按照获取和预期的屏幕截图

以下是我得到的坐标 -
For bigger rectangle -
x - 234
y - 89
width - 593
height - 627
For smaller Rectangle
rm.x - 39
rm.y - 8
rm.width - 49
rm.height - 30
Run Code Online (Sandbox Code Playgroud)
我用了这个公式——
canvas.drawRect(x+(x/3)+rM.x(), y/9, w-rM.width(), h/5, paint);
Run Code Online (Sandbox Code Playgroud)
event.getX()和event.getRawX().之间的主要区别是什么 .使用哪种情况.event.getRawX()可以解释一下细节吗?
在我的自定义视图中,用户可以绘制一些路径,然后将这些路径与背景位图合并,并将所有内容保存在 .JPG 文件中。问题是:如果我将位图缩放 2 倍,如何对路径进行相同的缩放?
谢谢你。
我需要指定一个矩形,Android 画布不能在其中绘制。我知道这clipRect将指定要绘制的区域,但我是否可以扭转这种效果。换句话说,我如何绘制一个对象,使其绘制到矩形的外部。图片说明:

目前我正在尝试旋转line我绘制的canvas. 我设法做到了,但是当我将它们旋转 360° 时,之前位置的线并没有消失,所以最后我得到的不仅仅是 1 条线,而是整个圆。
这是我的代码:
此代码段在应用程序启动时启动
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
imageView1 = (ImageView) findViewById(R.id.imageView1);
btn = (Button) findViewById(R.id.button1);
Bitmap.Config conf = Bitmap.Config.ARGB_8888; // see other conf types
bmp = Bitmap.createBitmap(width, height, conf); // this creates a MUTABLE bitmap
canvas = new Canvas(bmp);
p = new Paint();
p.setColor(Color.RED);
imageView1.setImageBitmap(bmp);
p.setStrokeWidth(5);
canvas.drawLine(0, height/2, width, height/2, p);
Run Code Online (Sandbox Code Playgroud)
而这件作品 - 每秒更新一次。
canvas.rotate(refY, width/2, height/2);
canvas.drawLine(0, height/2, width, height/2, p);
btn.setText(Integer.toString(refY))
Run Code Online (Sandbox Code Playgroud) 我想在画布上绘制一个带有颜色(或位图)和笔触的圆角矩形填充,但没有一些选定的角,并且在某些选定的边上也没有边框。我有什么想法可以实现这一目标吗?
无法弄清楚如何旋转文本,所以起始位置不是随机的.(我不想动画它).我只想指定起始位置.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new GraphicsView(this));
}
private static class GraphicsView extends View {
private static final String QUOTE = "Nobody uses Java anymore. It's this big heavyweight ball and chain.";
Path circle;
Paint tPaint;
public GraphicsView(Context context) {
super(context);
tPaint = new Paint();
tPaint.setColor(Color.BLUE);
tPaint.setTextSize(30);
tPaint.setAntiAlias(true);
//setBackgroundResource(R.drawable.background);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
circle = new Path();
int centerX = getWidth()/2;
int centerY = getHeight()/2;
circle.addCircle(centerX, centerY, Math.min(centerX, centerY), Direction.CW);
canvas.drawTextOnPath(QUOTE, circle, 0, …Run Code Online (Sandbox Code Playgroud)