android自定义view的参数传递问题 30

我想自定义一个view,调用ondraw方法画一些点和线,并把这个自定义view添加到xml布局文件中。画点和线的坐标是由参数传递过来的,怎么实现从activity传参数... 我想自定义一个view,调用ondraw方法画一些点和线,并把这个自定义view添加到xml布局文件中。
画点和线的坐标是由参数传递过来的,怎么实现从activity传参数到myview中,然后把view显示出来?
我自己的想法是把myview的构造函数写成
public MyView(Context context, int x, int y) {
super(context);
x = this.x;
y = this.y;
}
在ondraw方法中
canvas.drawPoint(x, y, paint);
这样做并没有成功,不知道是方法不对还是哪里出了问题,希望大神能解决。
展开
 我来答
百度网友1ad347d
推荐于2018-05-14 · TA获得超过1637个赞
知道小有建树答主
回答量:1025
采纳率:57%
帮助的人:83.1万
展开全部
android自定义view的参数传递,自定义View细分一下,分为两种
1) 自定义ViewGroup
2) 自定义View

其实ViewGroup最终还是继承之View,当然它内部做了许多操作;继承之ViewGroup的View我们一般称之为容器,而今天我们不讲这方面,后续有机会再讲。
来看看自定义View 需要掌握的几点,主要就是两点
一、重写 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {}方法。
二、重写 protected void onDraw(Canvas canvas) {}方法
空讲理论很难理解,还得用例子来说明, Android 微信6.1 tab栏图标和字体颜色渐变的实现 的博客,里面tab的每个item就是通过自定义View来实现的,那么接下来就通过此例子来说明问题。
把View理解为一张白纸,而自定义View就是在这张白纸上画上我们自己绘制的图案,可以在绘制任何图案,也可以在白纸的任何位置绘制,那么问题来了,白纸哪里来?图案哪里来?位置如何计算?
a)白纸好说,只要继承之View,在onDraw(Canvas canvas)中的canvas就是平常规裁军所说的白纸
/**
* Created by moon.zhong on 2015/2/13.
*/
public class CustomView extends View {
public CustomView(Context context) {
super(context);
}

public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
加菲带你看电影
高粉答主

2015-11-23 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:5.2万
采纳率:50%
帮助的人:4489万
展开全部
view 也是个类,里边定义一些方法,传递你需要的参数,例如public void refresh(int x, int y ) 你最开始的时候初始化后,就可以直接用这个实例调用refresh方法了,最后别忘了调用 postInvalidate()或Invalidate()方法刷新view
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小猪睡枕头
推荐于2017-11-27 · TA获得超过266个赞
知道小有建树答主
回答量:260
采纳率:0%
帮助的人:123万
展开全部
view 也是个类,里边定义一些方法,传递你需要的参数,例如public void refresh(int x, int y
)
你最开始的时候初始化后,就可以直接用这个实例调用refresh方法了,最后别忘了调用
postInvalidate()或Invalidate()方法刷新view
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
adekof14
2015-11-15 · TA获得超过3728个赞
知道小有建树答主
回答量:3017
采纳率:96%
帮助的人:367万
展开全部
view 也是个类,里边定义一些方法,传递你需要的参数,例如public void refresh(int x, int y
)
你最开始的时候初始化后,就可以直接用这个实例调用refresh方法了,最后别忘了调用
postInvalidate()或Invalidate()方法刷新view
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WinerAll
2015-12-07 · TA获得超过178个赞
知道答主
回答量:116
采纳率:50%
帮助的人:22.3万
展开全部
自定义view传递参数一般都是通过构造方法进行传递。

即:MyView view = new MyView(参数1,参数2,参数3,……)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式