自定义View组件

  

  自定义组件是通过继承View类,重写View类的方法而得,得到个性化的颜色、呈现、行为的组件。



一个圆:

public class SelfView extends View {
    float currentX=40;
    float currentY=50;  //坐标,为float类型。
    Paint paint=new Paint();  //画笔,
    public SelfView(Context context) {
        super(context);
    }
    public SelfView(Context context,AttributeSet set){
        super(context,set);
    }  //以上是SelfView类的两个构造函数  //重写了View类的onDraw()方法,其参数是Canvas类型的
    @Override
    public void onDraw(Canvas canvas){
        super.onDraw(canvas);  //指定画笔颜色
        paint.setColor(Color.BLUE);  //绘画图形
        canvas.drawCircle(currentX,currentY,25,paint);
    }  
    @Override
    public boolean onTouchEvent(MotionEvent motionEvent){  //获取触摸下的新坐标位置
        currentX=motionEvent.getX();
        currentY=motionEvent.getY();   //通知当前组件重绘自己,为什么不能通过this.onDraw(),或onDraw()呢?
        invalidate();
        return true;
    }
}

像添加系统组件那样添加自定义的SelfView组件:

SelfView selfView=new SelfView(this);
        root.addView(selfView);

也可以在XML中:

<com.×××.×××.×××.SelfView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
				
时间: 2024-08-07 10:54:11

自定义View组件的相关文章

Android Studio开发基础之自定义View组件

一般情况下,不直接使用View和ViewGroup类,而是使用使用其子类.例如要显示一张图片可以用View类的子类ImageView,开发自定义View组件可分为两个主要步骤: 一.创建一个继承自android.view.View类的View类,并且重写构造方法. 如下,新建一个名为MyView.Java的Java类文件,重写一个带Context的构造方法和onDraw()方法(用来重新绘制Activity窗口的背景). package com.example.lhb.contentprovid

【Android 应用开发】 自定义 View 组件 -- 圆形进度条

转载著名出处 : http://blog.csdn.net/shulianghan/article/details/40351487 代码下载 : -- CSDN 下载地址 : http://download.csdn.net/detail/han1202012/8069497 ; -- GitHub 地址 : https://github.com/han1202012/CircleProcess.git ; -- 工程示例 : 一. 相关知识点解析 1. 自定义 View 组件构造方法 构造方

Android 自定义view组件

Android中的组件类似于swxing中的Panel,它只是一片空白区域,对于UI组件来说,只是在其中绘制外观. 开发者可以继承view,自定义自己的组件,然后重写其中的方法: 构造器:当java创建或者xml创建组件时调用 下面通过一个例子,该例子设计一个组件,在手触摸的地方绘制一个圆形: 新建java类,添加如下代码: package com.example.tupianliulanqi; import android.content.Context; import android.gra

Android自定View组件方法

一.开发自定义View组件 View组件只是一个矩形的空白区域,并没有任何内容.对于Android应用的其他UI组件来说,它们都继承于View组件,然后在View组件提供的空白区域上绘制外观.当Android系统提供的UI组件不足以满足项目需要时,我们可以通过继承View来派生一个自定义组件. 举一个实例:实现一个跟随手指的小球.当用户通过手指在屏幕上拖动时,程序监听到这个手机动作,并把手指动作的位置传入自定义UI组件,并通知该组件重绘即可.开发步骤如下: 1.实现一个继承于View的子类 pa

自定义View实现广告位轮播图barner组件

闲谈 最近公司事情不算太多,闲来无事,看到项目中用到的广告轮播图,之前都是使用第三方的,趁事情不算多,所以自己实现一个广告位轮播图barner组件,这样的话,在以后的开发中就可以使用自己的了. 知识点 好了,切入正题!我们要想实现barner组件,首先要求我们需要哪些知识点呢? 1.自定义View的流程(测量.布局.绘制) 2.广告位轮播图滑动的时候,我们需要弹性滑动Scroller 3.自定义View的事件传递机制 4.在我们自定义View事件传递给我们自定义的View的时候,我们在OnTou

【Android】利用自定义View的重绘实现拖动移动,获取组件的尺寸

下面利用一个app来说明如何利用自定义View的重绘实现拖动移动,获取组件的尺寸. 如下图,触摸拖动,或者轻轻点击屏幕都能移动图片.如果碰到文字,则会弹出提示. 这里是利用自定义View的重绘来实现的.就是点击屏幕一次,这个自定义View就会重绘一次.虽然这个自定义View里面就只有一个图片. 1.首先在res\values\strings.xml中定义各个字体文件,修改之后如下: <?xml version="1.0" encoding="utf-8"?&g

自定义View 篇三 《手动打造ViewPage》

有了之前自定义View的理论基础,有了ViewPage.事件分发机制.滑动冲突.Scroller使用等相关知识的铺垫,今天纯手动打造一款ViewPage. 1.完成基本的显示: 在MainActivity中: public class MainActivity extends AppCompatActivity { private MyViewPage mViewPage; int[] imageIds = new int[]{ R.drawable.pic_0, R.drawable.pic_

自定义SlidingMenu组件

在网上学习了自定义slidingmenu组件,这里记录下其中的关键点. SlidingMenu其实是一个HorizontalScrollView,里面有两个布局,通过重写几个方法达到侧滑的效果. 首先原理是在LinearLayout外嵌套了HorizontalScrollView,SlidingMenu继承HorizontalScrollView. 重写onMeasure(int widthMeasureSpec, int heightMeasureSpec),onLayout(boolean

Android 自定义View

最近在看鸿洋大神的博客,在看到自定义部分View部分时,想到之前案子中经常会要用到"图片 + 文字"这类控件,如下图所示: 之前的做法是在布局文件中,将一个Image & TextView组件放在LinearLayout/RelativeLayout中.今天就尝试了通过自定义View的方式来实现"图片 + 文字"组件. 首先在/res/value/目录下新建attrs.xml文件,在该文件中为CustomTextView定义以下几个attr.分别为 1.文字