4
我正在使用简单的指南针应用程序。我需要为传感器活动设置指南针视图,以便选择指南针视图类。但它只是为罗盘视图绘制一个圆圈和一条线。我需要自定义这个视图,通过替换这个圆圈和行与我自己的可绘制图像有人请帮我解决这个问题。如何在android中制作自定义指南针视图
我的视图类
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
public class MyCompassView extends View {
private Paint paint;
private float position = 0;
public MyCompassView(Context context) {
super(context);
init();
}
private void init() {
paint = new Paint();
paint.setAntiAlias(true);
paint.setStrokeWidth(2);
paint.setTextSize(25);
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.WHITE);
}
@Override
protected void onDraw(Canvas canvas) {
int xPoint = getMeasuredWidth()/2;
int yPoint = getMeasuredHeight()/2;
float radius = (float) (Math.max(xPoint, yPoint) * 0.6);
canvas.drawCircle(xPoint, yPoint, radius, paint);
canvas.drawRect(0, 0, getMeasuredWidth(), getMeasuredHeight(), paint);
// 3.143 is a good approximation for the circle
canvas.drawLine(xPoint,
yPoint,
(float) (xPoint + radius
* Math.sin((double) (-position)/180 * 3.143)),
(float) (yPoint - radius
* Math.cos((double) (-position)/180 * 3.143)), paint);
canvas.drawText(String.valueOf(position), xPoint, yPoint, paint);
}
public void updateData(float position) {
this.position = position;
invalidate();
}
}
答案是多一点的链接不被认为是很好的答案,并作为评价更好。如果你想添加更多的细节,特别是代码和如何实现解决方案,那么这将是一个更好的答案。 – psubsee2003 2013-11-30 16:23:15
我在创建的应用程序中使用此指南针代码,需要一些编辑帮助以使其适用于我的应用程序。你能检查我的问题并尝试帮忙吗? http://stackoverflow.com/questions/22724671/how-to-point-a-compass-to-a-given-bearing-angle – Bob21 2014-03-31 04:42:56