澳门太阳集团,太阳集团娱乐网址

    欢迎访问太阳集团娱乐网址~

  1. 加入收藏
  2. 设为主页
  3. 学校简介
北大青鸟

三分钟了解北大青鸟

×
  • 北大青鸟大数据课程
  • 北大青鸟网络工程师
  • 北大青鸟web设计专业
  • 北大青鸟PHP专业
  • 北大青鸟启蒙星课程

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

责任编辑:027hpedu来源:太阳集团娱乐网址安卓技术教程发布时间:2013-06-02 15:16
导读:Android中的View组件的作用类似于Swing编程中的Panel。对于Android应用的其它UI组件来说,它们都继承自View组件。基于Android UI组件的实现原理,开发者完可以通过继承View来派生自定义组件

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<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);
    }
     
    @Override
    protected void onDraw(Canvas canvas)
    {
          //设置画笔的颜色
          p.setColor(Color.RED);
          //绘制圆
        canvas.drawCircle(currentX,currentY,15,p);
    }
     
    @Override
    public boolean onTouchEvent(MotionEvent event)
    {
          //获得(更新)位置坐标
        this.currentX=event.getX();
        this.currentY=event.getY();
        //通知当前组件重绘
        this.invalidate();
        return true;
    }  
}
</span>

在Activity类中,我们把该组件添加到指定容器中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<span style="font-size:14px;">public class MainActivity extends Activity
{
    private LinearLayout layout=null;
    private DrawView draw=null;
 
    @Override
    protected 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布局文件中添加该组件(实际上更这种方法)。

1
2
3
4
5
6
7
8
9
10
11
12
13
<span style="font-size:14px;color:#000000;"><LinearLayout
    xmlns:android="http://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程序中只需如下代码即可:

1
2
3
4
5
6
7
8
9
10
11
<span style="font-size:14px;">public class MainActivity extends Activity
{
 
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
      super.setContentView(R.layout.activity_main);    
    }
 
}</span>

本文标题:Android学习技巧之自定义UI组件,责任编辑:027hpedu,于2013年06月02日15时16分发布于太阳集团娱乐网址。澳门太阳集团宏鹏鲁广校区,是北大青鸟武汉电脑学校,专业IT计算机培训,拥有软件/网络/安卓/Web前端/Java课程.北大青鸟地址:光谷广场鲁巷数码港.电话:15902769092

专业老师指导

专业老师指导

赵老师

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

培训咨询客服

培训咨询客服

陈老师

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

本文地址:
文章标题:
  • 北大青鸟Java软件开发
  • 北大青鸟UI设计课程_零基础可学
  • 北大青鸟动漫设计_武汉设计学校
  • 北大青鸟数字艺术_武汉电脑学校
在线咨询
×
在线咨询更多问题

如您有任何疑问
在线咨询随时为您解答或拨打咨询热线:15902769092

×
  • 姓 名*
  • 手 机*
  • QQ号/微信号
  • 所报学科 *
  • 其他备注
  • 温馨提示:请保持手机畅通,咨询老师将为您提供专属的一对一报名服务。