安卓开发之引入布局中自定义控件、OnDraw()绘图
2016-10-27 10:23
323 查看
引用布局:
Mapp中代码
刷新:
Mapp view = (Mapp)findViewById(R.id.map);
view.invalidate();
备注:layoutparams可以解决自定义控件占据屏幕区域的问题。
view.invalidate();
<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();
相关文章推荐
- 【安卓深度控件开发(2.2)】LCDView - 进阶绘图
- 安卓开发06:布局-线性布局 LinearLayout
- 安卓开发笔记二——软键盘弹出不遮挡布局的策略
- 安卓沉浸式状态栏开发 输入法弹出遮挡布局问题解决
- 安卓开发学习之017 自定义控件之属性获取
- 14天学会安卓开发(第三天)UI事件处理与布局管理
- [安卓开发] 快递物流信息布局
- 安卓开发——安卓界面布局笔记
- 安卓开发常见布局方式学习
- 安卓开发——在Activity里如何获得另一个xml布局文件的控件
- 安卓开发08:布局-相对位置布局 RelativeLayout
- 安卓开发之相对布局
- 安卓开发中常用布局总结
- 记录我的安卓开发之旅——安卓开发笔记一——xml实现圆角布局
- 两个并排的按钮只显示了一个【安卓开发布局问题 wrap_content】
- 安卓开发06:布局-线性布局 LinearLayout
- 安卓开发06:布局-线性布局 LinearLayout
- 14天学会安卓开发(第三天)UI事件处理与布局管理
- [请教]安卓开发中因布局资源文件调用不当造成的StackOverFlowError有何深层原因?
- Android开发之(include)引入布局