全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android编程自定义组件实例详解

本文实例讲述了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小时内与您取得联系。