Android  自己定义View须要重写ondraw()等方法。这篇博客给大家说说自己定义View的写法,须要我们继承View,然后重写一些

方法,方法多多,看你须要什么方法



首先写一个自己定义的View 继承View

package com.example.engineerjspview;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.MotionEvent;
/**
* 自己定义 EngineerJspView
* @author Engineer-Jsp
* @date 2014.10.28
* */
import android.view.View;
public class EngineerJspView extends View{
public float E_X = 188;
public float E_Y = 188;
Paint paint = new Paint(); public EngineerJspView(Context context) {
super(context);
}
public EngineerJspView(Context context, AttributeSet set){
super(context, set);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint.setColor(Color.RED);
canvas.drawCircle(E_X, E_Y, 88, paint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
E_X = event.getX();
E_X = event.getY();
invalidate();
return false;
}
@Override
protected void onAnimationStart() {
super.onAnimationStart();
}
@Override
protected void onAnimationEnd() {
super.onAnimationEnd();
} }

布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <com.example.engineerjspview.EngineerJspView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" /> </RelativeLayout>

主活动:

package com.example.engineerjspview;
/**
* 自己定义 EngineerJspView
* @author Engineer-Jsp
* @date 2014.10.28
* */
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} }

效果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanNwcGluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



自己定义View看你需求而定,并不仅仅是绘图形而已。我这里仅仅是说明下自己定义View须要重写的方法~~

最新文章

  1. Linux kernel 文件夹说明
  2. android sdk manager国内无法更新的解决办法
  3. bzoj 1208 splay模板题2
  4. ActiveMQ 即时通讯服务——浅析
  5. C#:如何解决WebBrowser.DocumentCompleted事件的多次调用
  6. spring Aop的一个demo
  7. windows phone 生产二维码和解码本地二维码图片
  8. Opencv 简单的图片显示
  9. JavaScript DOM省市自适配select菜单
  10. PHP中try{}catch{}的具体用法详解
  11. AtCoder Regular Contest 069 D
  12. Spring的IOC注解开发入门2
  13. opencv: 基本知识(二);
  14. (转)/etc/init.d/functions详解
  15. “数学口袋精灵”App的第三个Sprint计划----开发日记
  16. Xamarin Mono Android实现“再按一次退出程序”
  17. 你不知道的JavaScript(下卷) (Kyle Simpson 著)
  18. maven jstl、jsp、servlet依赖
  19. [转帖]ssd固态硬盘的Trim命令是什么?
  20. Informatica 常用组件Lookup缓存之五 使用动态查找高速缓存

热门文章

  1. java内存模型(线程共享部分)
  2. 03pandas
  3. Java 一些常见问题(持续更新)
  4. python 04 学生信息管理系统
  5. Django框架基础知识09-请求与响应
  6. Python运维工程师
  7. 数据结构( Pyhon 语言描述 ) — — 第2章:集合概览
  8. POJ 1949 Chores(DAG上的最长路 , DP)
  9. 关于自由拖拽完成的剪切区域(UI组件之图片剪切器)
  10. 大数据学习——hive使用