创建自己的View类-移动的Picture
来源:互联网 发布:量化交易平台 python 编辑:程序博客网 时间:2024/05/21 09:42
在安卓中,我们所用的UI组件一般都集成于基类android.view.View。在实际开发中,类库中的组件可能不能满足我们的需求,这时候就需要定义自己的View类了。
下面将会有一个实例:实现一个PicView类,用于显示一张图片,当触摸屏幕时,该图片就会出现在所触摸的地方。
首先,我们需要新建一个类,例如PicView,继承于android.view.View,重写onDraw()方法。
package com.example.movepic;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;import android.view.View;/**PicView类继承于android.view.View类 * 构造函数初始化对象的位置 * 重写onDraw函数显示图片*/public class PicView extends View{public float bitmapX;public float bitmapY;public PicView(Context context) {super(context);// TODO 自动生成的构造函数存根bitmapX = 290;bitmapY = 140;}@Overrideprotected void onDraw(Canvas c){super.onDraw(c);Paint paint = new Paint();Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.p2);c.drawBitmap(bitmap, bitmapX, bitmapY, paint);//判断图片是否被回收if(bitmap.isRecycled())bitmap.recycle();}}
在MainActivity中新建PicView对象并设置监听事件。
package com.example.movepic;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.widget.FrameLayout;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/**构造帧布局管理器 * 新建PicView对象并初始化 * 设置该View对象的触摸监听事件 * 把该对象添加到布局管理器中*/FrameLayout frameLayout = (FrameLayout)findViewById(R.id.FrameLayout1);final PicView picView = new PicView(this);picView.setOnTouchListener(new OnTouchListener(){@Overridepublic boolean onTouch(View v, MotionEvent e) {// TODO 自动生成的方法存根picView.bitmapX = e.getX();picView.bitmapY = e.getY();//重新绘制图片picView.invalidate();return false;}});frameLayout.addView(picView);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}这样即可定义并应用自己的View组件。
- 创建自己的View类-移动的Picture
- ios app: view: 怎样创建自己的view
- 自定义view学习-创建自己的九宫格解锁view
- 移动 view 的位置
- 定义自己的View
- 创建自定义的View类
- 创建自定义的View类
- MFC笔记:键盘移动picture控件的位置
- 一步一步掌握sharpdevelop4,创建自己的pad,和自己的view
- 自己的View工具类---ViewUtil
- 创建自己的linq类
- 创建自己的异常类
- 3.2 创建自己的类
- 跟随手机移动的View
- 如何实现View的移动
- 学习总结--View 的移动
- View移动的相关方法
- 移动view的点击事件
- c++ 重载 与重写
- Oracle 10g 下载地址
- 关系规范化理论
- 每次用strtus2的json插件时总是说找不到类
- 基于权值的微博用户采样算法研究
- 创建自己的View类-移动的Picture
- Linux共享内存编程实例
- Linux管道编程实例
- Ubuntu 11.04 下安装配置 JDK 7
- ckeditor可视化编辑器的用法....
- 基于多线程的大容量MMORPG主逻辑服务器实现策略
- android应用程序布局时选择皮肤和设置横屏、全屏显示的方法
- C#简单画图,构造函数画图和OnPaint函数画图
- 频谱分析中如何选择合适的窗函数