gpt4 book ai didi

java - 自定义 Circlular seek arc 以将位图放置在给定的进度级别

转载 作者:行者123 更新时间:2023-11-29 20:17:40 25 4
gpt4 key购买 nike

当前

enter image description here

预计

enter image description here我希望获得比图片中更好的结果,情况。 给定一个进度值 X,我想获得进度的 x 和 y 坐标,以便我可以在 circular seekarc 周围绘制一个标志。 .

    for (int i = 0; i < positionList.size(); i++) {

xPost = (float)(mArcRect.centerX() + mArcRadius* Math.cos(Math.toRadians(calculatePointerAngle((positionList.get(i).getPosition()+270)))));
yPost = (float) (mArcRect.centerY() + mArcRadius * Math.sin(Math.toRadians(calculatePointerAngle((positionList.get(i).getPosition()+270)))));


setflagX(xPost);
setflagxY(yPost);
points.add(new Points(xPost, yPost));


// }
}

然后我使用自定义类来绘制标志

.....`

 @Override
public void onDraw(Canvas canvas) {
//Draw the flag

final Resources res = getResources();

// while (coordinates.iterator().hasNext()){
for (int i = 0; i < coordinates.size(); i++) {
if (i == 0) {

bm = BitmapFactory.decodeResource(res, R.drawable.ic_flag_red);

canvas.drawBitmap(bm, coordinates.get(i).getX(), coordinates.get(i).getY(), null);
} else {

bm = BitmapFactory.decodeResource(res, R.drawable.ic_flag_blue);

canvas.drawBitmap(bm, coordinates.get(i).getX(), coordinates.get(i).getY(), null);

}
}



}`

任何关于如何修复偏移量的建议......我对圆外的点 bing 没问题

最佳答案

在我看来你做的是正确的,但是你画错了位图。

位图从 (left, top) 绘制到 (left + width, right + height) 而你没有考虑到这一点。

canvas.drawBitmap(bm, 
coordinates.get(i).getX() - bm.getWidth() / 2,
coordinates.get(i).getY() - bm.getHeight() / 2, null);

应该可以解决你的问题

关于java - 自定义 Circlular seek arc 以将位图放置在给定的进度级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33598492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com