本文实例讲述了Android编程自定义组件。分享给大家供大家参考,具体如下:

在Android中,所有的UI界面都是由View类和ViewGroup类及其子类组合而成。其中,View类是所有UI组件的基类,而ViewGroup类是容纳这些UI组件的容器。
其本身也是View类的子类。
在实际开发中,View类还不足以满足程序所有的需求。这时,便可以通过继承View类来开发自己的组件。
开发自定义组件的步骤:
1、创建一个继承android.view.View类的View类,并且重写构造方法。
2、根据需要重写相应的方法。
3、创建并实例化自定义View类,并将其添加到布局管理器中。
现在来学习使用自定义类
1、首先创建一个java文件来绘制图片
package myview;
import com.example.allcode.R;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;
public class MyView extends View{
public float bitmipx;
public float bitmipy;
public MyView(Context context) {
super(context);
bitmipx=550;
bitmipy=550;
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
//创建并实例化Paint对象
Paint paint = new Paint();
//根据图片生成位图对象
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.image_equip_baibao_baicaodan);
canvas.drawBitmap(bitmap, bitmipx,bitmipy, paint); //绘制图片
if(bitmap.isRecycled()) //判断图片是否可以回收
{
bitmap.recycle(); //强制回收图片
}
}
}
2、在主activity中实例化图片,并添加触摸事件
package myview;
import com.example.allcode.R;
import android.app.Activity;
import android.os.Bundle;
import android.provider.ContactsContract.CommonDataKinds.Event;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.FrameLayout;
public class ShowMyView extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.showmyview);
FrameLayout framelayout = (FrameLayout) findViewById(R.id.showview);
final MyView myview = new MyView(ShowMyView.this); //创建并示例化MyView类
//添加触摸事件
myview.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
myview.bitmipx=event.getX();
myview.bitmipy=event.getY();
myview.invalidate();//重绘自定义组件
return true;
}
});
framelayout.addView(myview);
}
}
对应的布局文件
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/showview" //不要忘记这一行 > </FrameLayout>
效果图如下:
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
# Android
# 自定义组件
# Android自定义组件获取本地图片和相机拍照图片
# Android 自定义组件成JAR包的实现方法
# Android自定义组件ListPopWindow
# android自定义组件实现方法
# Android实现Ant Design 自定义表单组件
# Android自定义加载loading view动画组件
# Android UI设计系列之自定义DrawView组件实现数字签名效果(5)
# Android中自定义Checkbox组件实例
# Android自定义View设定到FrameLayout布局中实现多组件显示的方法 分享
# 自定义
# 子类
# 重写
# 创建一个
# 自己的
# 进阶
# 相关内容
# 是由
# 还不
# 感兴趣
# 而成
# 给大家
# 便可
# 更多关于
# 解决方法
# 所述
# 程序设计
# 不要忘记
# 这一行
# 器中
相关文章:
网站企业制作流程,用什么语言做企业网站比较好?
简历在线制作网站免费版,如何创建个人简历?
建站主机数据库如何配置才能提升网站性能?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
如何在阿里云高效完成企业建站全流程?
怎么将XML数据可视化 D3.js加载XML
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
如何在Windows 2008云服务器安全搭建网站?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
股票网站制作软件,网上股票怎么开户?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
成都响应式网站开发,dw怎么把手机适应页面变成网页?
制作电商网页,电商供应链怎么做?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
大型企业网站制作流程,做网站需要注册公司吗?
Swift中循环语句中的转移语句 break 和 continue
如何快速选择适合个人网站的云服务器配置?
北京网站制作公司哪家好一点,北京租房网站有哪些?
如何快速搭建支持数据库操作的智能建站平台?
建站主机是否等同于虚拟主机?
如何访问已购建站主机并解决登录问题?
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何快速查询网站的真实建站时间?
如何挑选高效建站主机与优质域名?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
上海网站制作开发公司,上海买房比较好的网站有哪些?
定制建站哪家更专业可靠?推荐榜单揭晓
如何快速搭建高效香港服务器网站?
建站之星导航如何优化提升用户体验?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
高端网站建设与定制开发一站式解决方案 中企动力
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
建站主机与服务器功能差异如何区分?
如何自定义建站之星模板颜色并下载新样式?
太原网站制作公司有哪些,网约车营运证查询官网?
如何通过远程VPS快速搭建个人网站?
浅谈Javascript中的Label语句
家庭建站与云服务器建站,如何选择更优?
XML的“混合内容”是什么 怎么用DTD或XSD定义
如何做静态网页,sublimetext3.0制作静态网页?
Android自定义listview布局实现上拉加载下拉刷新功能
建站为何优先选择香港服务器?
高防服务器:AI智能防御DDoS攻击与数据安全保障
定制建站模板如何实现SEO优化与智能系统配置?18字教程
广州建站公司哪家好?十大优质服务商推荐
,怎么在广州志愿者网站注册?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
深圳网站制作案例,网页的相关名词有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。