Android 画线固定坐标
我有一个问题,我试图解决这个问题,但我没有找到解决办法 我有两列图片。我想通过每个图像的中点连接它们。我的问题是附着点向下移动,就像图像一样 我有一个“main”类和一个内部类:public类DrawView扩展了LinearLayout 使用阿曲布他: 私人油漆=新油漆(); 我设置了下一个值: 油漆。设置颜色(颜色。黑色); 油漆。设置行程宽度(6) 我使用下一个代码来画线:Android 画线固定坐标,android,android-canvas,Android,Android Canvas,我有一个问题,我试图解决这个问题,但我没有找到解决办法 我有两列图片。我想通过每个图像的中点连接它们。我的问题是附着点向下移动,就像图像一样 我有一个“main”类和一个内部类:public类DrawView扩展了LinearLayout 使用阿曲布他: 私人油漆=新油漆(); 我设置了下一个值: 油漆。设置颜色(颜色。黑色); 油漆。设置行程宽度(6) 我使用下一个代码来画线: public void onDraw(Canvas canvas) { } @SuppressL
public void onDraw(Canvas canvas) {
}
@SuppressLint("UseValueOf")
@Override
public void dispatchDraw(Canvas canvas) {
super.dispatchDraw(canvas);
if (activateDraw) {
for (int i = 0; i < 5; i++) {
//I not include the color selection.
x1= Image[i].x + Image[i].width;
y1=Image[i].y+ (new Double(Image[i].height / 2).intValue()));
x2=ImagePr[i].x;
y2=ImagePr[i].y + (new Double((ImagePr[i].height) / 2).intValue()));
canvas.drawLine(x1, y1, x2, y2, paint);
}
activateDraw = false;
}
}
在主要课程中,我有心房肌:
Canvas auxCanvas=新画布();
当我想要画线的时候,我执行onDraw(auxCanvas)方法。为什么线不画连接“中点”
有人能帮我吗?谢谢
@肖纳克:对不起,这是一次失败。我已经移除了它,但它不会影响,问题还在继续。谢谢大家!
@我尝试了你的改变,但问题仍然存在
我不明白为什么在模拟器中似乎可以正常工作,但在设备上却不行
解决方案:
(我以为我已经写了答案,对不起)
解决办法非常简单。该应用程序是专为有6-8年学习经验的学生设计的,所以我决定隐藏状态栏,上面的代码在不做任何更改的情况下工作得非常完美!
隐藏状态栏:
如果其他人想显示状态栏,我想您需要减去状态栏的高度。参考:
像这样的东西对你有用吗
float d = getResources().getDisplayMetrics().density;
canvas.drawLine(x1*d, y1*d, x2*d, y2*d, paint);
注意:如果乘法不起作用,请尝试除以
d
。。。我永远记不起该做什么。final int[]values=new int[2];为什么在这里使用final?试着像这样计算一下(int)(图像[i].height/2.0f)
谢谢你的评论=)我搜索了有关密度的信息,它似乎就是我需要的。我看到了下面两篇文章:但我没有找到有用的东西,或者我没有解决我的问题。在这些帖子中,它们转换单位,但我不需要它,因为我使用getWidth和getHeight方法获取像素。
float d = getResources().getDisplayMetrics().density;
canvas.drawLine(x1*d, y1*d, x2*d, y2*d, paint);