北大青鸟

首页 > 安卓技术教程

站内公告

Android学习技巧之自定义UI组件

责任编辑:宏鹏来源:武汉北大青鸟鲁广校区时间:06-02
导读:Android中的View组件的作用类似于Swing编程中的Panel。对于Android应用的其它UI组件来说,它们都继承自View组件。基于Android UI组件的实现原理,开发者完可以通过继承View来派生自定义组件

Android中的View组件的作用类似于Swing编程中的Panel。对于Android应用的其它UI组件来说,它们都继承自View组件。基于Android UI组件的实现原理,开发者完可以通过继承View来派生自定义组件。

下面以一个实例来说明如何开发自定义的UI组件:

实例:跟随手指的小球——开发自定义的UI组件,这个组件将会在指定位置绘制一个小球,这个位置可以动态改变。当用户通过手指在屏幕上拖动时,程序监听到这个手指事件,并把手指动作的位置传入自定义UI组件,并通知该组件重绘。

12345678910111213141516171819202122232425262728293031323334353637<span style="font-size:14px;">public class DrawView extends View {private float currentX=40;private float currentY=50;//定义并创建画笔Paint p=new Paint(); public DrawView(Context context) {super(context);} public DrawView(Context context,AttributeSet set) {super(context,set);}@Overrideprotected void onDraw(Canvas canvas){//设置画笔的颜色p.setColor(Color.RED);//绘制圆canvas.drawCircle(currentX,currentY,15,p);}@Overridepublic boolean onTouchEvent(MotionEvent event) {//获得(更新)位置坐标this.currentX=event.getX();this.currentY=event.getY();//通知当前组件重绘this.invalidate();return true;} }</span>
在Activity类中,我们把该组件添加到指定容器中。

123456789101112131415161718192021<span style="font-size:14px;">public class MainActivity extends Activity {private LinearLayout layout=null;private DrawView draw=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.activity_main);//获取LinearLayout容器 this.layout=(LinearLayout) super.findViewById(R.id.layout);//创建DrawView组件this.draw=new DrawView(this);//设置组件相关属性draw.setMinimumWidth(300);draw.setMinimumHeight(500);this.layout.addView(draw);}}</span>
当然,为了在手机屏幕上显示出自定义的DrawView组件,我们也可以不在Activity类中动态添加,而是选择在XML布局文件中添加该组件(实际上更这种方法)。

12345678910111213<span style="font-size:14px;color:#000000;"><LinearLayout xmlns:android="//schemas.android.com/apk/res/android"android:id="@+id/layout"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity" ><<strong>nku.jerry.demo.DrawView </strong>android:layout_width="match_parent"android:layout_height="match_parent" /> </LinearLayout></span>
注意,XML文件中DrawView的路径要写完整,否则会提示找不到该组件。

此时,Activity程序中只需如下代码即可:

1234567891011<span style="font-size:14px;">public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.activity_main); }}</span>

    看过该安卓技术教程的还看过

本文标题:Android学习技巧之自定义UI组件,责任编辑:宏鹏,来源:武汉北大青鸟鲁广校区栏目,于06-02发布于北大青鸟鲁广校区。Android中的View组件的作用类似于Swing编程中的Panel。对于Android应用的其它UI组件来说,它们都继承自View组件。基于Android UI组件的实现原理,开发者完可以通过继承View来派生自定义组件

专业老师指导

赵老师

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业

立即在线咨询

培训咨询客服

陈老师

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑

立即在线咨询

本文地址:https://m.027hpedu.com/html/2718.html

文章标题:Android学习技巧之自定义UI组件

上一篇:

下一篇:

热点关注

推荐安卓技术教程

热门安卓技术教程

初中生
高中生
大学生
打工者
男生
女生

预约你的精彩未来

预约将免费领取7天课程体验卡

-------请选择试预约课程-------

JAVA
WEB前端
PHP
UI设计
Python
电子商务
视频剪辑
大数据工程师
平面设计

83345人已领取

全国百余家校区

只为您方便就学

北大青鸟鲁广校区

北大青鸟鲁广校区

武汉市洪山区珞喻路724号(地铁二号线光谷广场站F口出)

预约到校
领取学习大礼包

首页

热门课程

视频网课

新闻资讯

关于学校

联系学校

预约选课申请

  • 预约时间

    请选择预约时间

  • 预约课程

    请选择预约课程

  • 姓   名
  • 手机号
  • QQ 号
  • 微信号

添加老师微信号

专业老师24小时1对1学习指导

定制专属于你的专属学习方案

微信号:17740513250

复制老师的微信号

复制成功啦

快去微信添加老师为好友吧~

北大青鸟小青

微信号:17740513250

北大青鸟小青

微信号:17740513250

设置备注
小主知道啦