Android怎么自定义view组件?这篇文章运用了实例代码展示,代码非常详细,可供感兴趣的小伙伴们参考借鉴,希望对大家有所帮助。
Android中的组件类似于swxing中的Panel,它只是一片空白区域,对于UI组件来说,只是在其中绘制外观。
开发者可以继承view,自定义自己的组件,然后重写其中的方法:
构造器:当java创建或者xml创建组件时调用
下面通过一个例子,该例子设计一个组件,在手触摸的地方绘制一个圆形:
新建java类,添加如下代码:
package com.example.tupianliulanqi;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;
public class MyView extends View {
private Paint p = new Paint();
private float myX = 0;
private float myY = 0;
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
//用于重新绘制组件
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
//设置画笔属性
p.setColor(Color.RED);
canvas.drawCircle(myX, myY, 15, p);
}
//触摸事件发生时调用
public boolean onTouchEvent(MotionEvent event) {
myX = event.getX();
myY = event.getY();
//告诉需要重新绘制组件
this.invalidate();
return true;
}
}
在Activity中添加:
public class MainActivity extends Activity {
MyView myview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout layout = (LinearLayout)this.findViewById(R.id.main);
myview = new MyView(this);;
layout.addView(myview);
}
以上就是Android自定义view组件的详细内容,代码示例简单明了,如果在日常工作遇到此问题。通过这篇文章,希望你能有所收获,更多详情敬请关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。