引用布局:
<com.example.aa.Mapp
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
></com.example.aa.Mapp>Mapp中代码
public class Mapp extends View
{
private Paint paint;
private int mapp_height;
private int mapp_width;
private int x1,y1,x2,y2;
public Mapp(Context context,AttributeSet attrs)
{
super(context,attrs);
final DisplayMetrics dm = new DisplayMetrics();
((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(dm);
mapp_height = 250 * 3;
mapp_width = dm.widthPixels;
// 创建画笔
paint = new Paint();
x1 = (int)(mapp_width / 10);
y1 = (int)(mapp_height / 10);
x2 = mapp_width - (int)(mapp_width / 20);
y2 = mapp_height - (int)(mapp_height / 20);
}
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
canvas.drawColor(Color.BLACK);
// 画笔颜色为灰色
paint.setColor(Color.GRAY);
// 宽度3个像素
paint.setStrokeWidth(3);
//字体大小自动适应(320分辨率用8号字体)
paint.setTextSize((int)(8*mapp_width/320));
canvas.drawLine(x1, y1, x2, y1, paint);
canvas.drawLine(x1, y1, x1, y2, paint);
canvas.drawLine(x1, y2, x2, y2, paint);
canvas.drawLine(x2, y1, x2, y2, paint);
}
}
刷新:
Mapp view = (Mapp)findViewById(R.id.map);
view.invalidate();
备注:layoutparams可以解决自定义控件占据屏幕区域的问题。
view.invalidate();
本文介绍了一种自定义地图视图的实现方法,通过继承View并使用Canvas进行地图绘制。文章详细展示了如何设置地图视图的尺寸,并利用Paint对象绘制地图边界。此外,还介绍了如何通过invalidate()方法刷新视图。
669

被折叠的 条评论
为什么被折叠?



