Android自助餐之自定义控件(一)从layout自定义控件

Android自助餐之自定义控件(一)从layout自定义控件

  • Android自助餐之自定义控件一从layout自定义控件

    • 从layout自定义控件

从layout自定义控件

  1. layout中新建一个layout

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent" >
     <TextView
         android:id="@+id/tv_text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"/>
     <ImageView
         android:id="@+id/iv_image"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_below="@+id/tv_text"/>
    </RelativeLayout>
  2. 在src中新建一个类

    所继承的类与上一步layout的根view相同

    public class CustomView extends RelativeLayout{
    
    //layout中包含的view
    private View mRootView;
    private TextView mTextView;
    private ImageView mImageView;
    
    //重载一参构造方法
    public CustomView(Context context) {
        this(context,null);
    }
    
    //重载两参构造方法
    public CustomView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mRootView=LayoutInflater.from(context).inflate(R.layout.layout_view, this,true);
        mTextView=(TextView) mRootView.findViewById(R.id.tv_text);
        mImageView=(ImageView) mRootView.findViewById(R.id.iv_image);
    }
    
    //自定义方法
    public void setText(String text){
        mTextView.setText(text);
    }
    
    //自定义方法
    public void setImageResource(int resId){
        mImageView.setImageResource(resId);
    }
    }
  3. 现在可以把它当做普通控件使用了。
时间: 2024-11-23 10:37:54

Android自助餐之自定义控件(一)从layout自定义控件的相关文章

Android 实现形态各异的双向侧滑菜单 自定义控件来袭

1.概述 关于自定义控件侧滑已经写了两篇了~~今天决定把之前的单向改成双向,当然了,单纯的改动之前的代码也没意思,今天不仅 会把之前的单向改为双向,还会多添加一种侧滑效果,给大家带来若干种形态各异的双向侧滑菜单,不过请放心,代码会很简单~~然后根据这若干种,只要你喜 欢,相信你可以打造任何绚(bian)丽(tai)效果的双向侧滑菜单~~ 首先回顾一下,之前写过的各种侧滑菜单,为了不占据篇幅,就不贴图片了: 1.最普通的侧滑效果,请参考:Android 自定义控件打造史上最简单的侧滑菜单 2.仿Q

android - 自定义(组合)控件 + 自定义控件外观

转载:http://www.cnblogs.com/bill-joy/archive/2012/04/26/2471831.html android - 自定义(组合)控件 + 自定义控件外观 Android自定义View实现很简单 继承View,重写构造函数.onDraw,(onMeasure)等函数. 如果自定义的View需要有自定义的属性,需要在values下建立attrs.xml.在其中定义你的属性. 在使用到自定义View的xml布局文件中需要加入xmlns:前缀="http://sc

Android 实现形态各异的双向侧滑菜单 自定义控件来袭(转载)

1.概述 关于自定义控件侧滑已经写了两篇了~~今天决定把之前的单向改成双向,当然了,单纯的改动之前的代码也没意思,今天不仅会把之前的单向改为双向,还会多添加一种侧滑效果,给大家带来若干种形态各异的双向侧滑菜单,不过请放心,代码会很简单~~然后根据这若干种,只要你喜欢,相信你可以打造任何绚(bian)丽(tai)效果的双向侧滑菜单~~ 2.目标效果 1.最普通的双向侧滑 是不是很模糊,嗯,没办法,电脑显卡弱.... 2.抽屉式双向侧滑 3.菜单在内容之下的双向侧滑 凑合看下,文章最后会提供源码下载

Android自助餐之SoundPool

Android自助餐之SoundPool Android自助餐之SoundPool SoundPool介绍 主要方法 使用方法 使用示例 SoundPool介绍 SoundPool相对于MediaPlayer,用前者播放短但反应速度要求高的声音以及同时播放多个声音. SoundPool使用独立的线程载入声音,SoundPool.OnLoadCompleteListener回调载入完成后的方法. 主要方法 加载声音.返回值为soundID. priority参数无效,置1 若文件大于1M,则只加载

Android自助餐之控件注解IOC

Android自助餐之控件注解IOC Android自助餐之控件注解IOC 支持的事件 使用步骤 支持的事件: onCheckedChanged() onClick() onEditorAction() onFocusChange() onItemClick() onItemLongClick() onItemSelected() onLongClick() onPageChange() onTextChanged() onTouch() 使用步骤 首先在build.gradle中添加 comp

Android自助餐之EventBus框架

Android自助餐之EventBus框架 Android自助餐之EventBus框架 下载完整源代码 配置buildgrandle 实例化EventBus 注册事件监听 定义被传递的事件类 发送事件 处理时间 下载完整源代码 配置build.grandle compile 'de.greenrobot:eventbus:2.4.0' 实例化EventBus eventBus=EventBus.builder().build(); 注册事件监听 eventBus.register(this);

【Android自助餐】Handler消息机制完全解析(二)MessageQueue的队列管理

Android自助餐Handler消息机制完全解析(二)MessageQueue的队列管理 Android自助餐Handler消息机制完全解析二MessageQueue的队列管理 添加到消息队列enqueueMessage 从队列取出消息next 第一段 第三段 第二段 从队列移除消息removeMessages 第一个while 第二个while 关于这个队列先说明一点,该队列的实现既非Collection的子类,亦非Map的子类,而是Message本身.因为Message本身就是链表节点(见

【Android自助餐】Handler消息机制完全解析(一)Message中obtain()与recycle()的来龙去脉

[Android自助餐]Handler消息机制完全解析(一)Message中obtain()与recycle()的来龙去脉 Android自助餐Handler消息机制完全解析一Message中obtain与recycle的来龙去脉 提供obtain 回收recycle 提供obtain() 在obtain的所有重载方法中,第一行都是Message m = obtain();,即调用空参的方法. 先来看一下这个空参方法 public static Message obtain() { synchr

Android自助餐之解析zip

Android自助餐之解析zip Android自助餐之解析zip 获取文件的所有节点游标 遍历每个节点 处理一个节点 解压文件思路解压某个ZipFile到指定目标路径 直接用的代码 获取文件的所有节点游标 Enumeration entries = zipFile.entries();//ZipFile为java.util.zip.ZipFile 遍历每个节点 while(entries.hasMoreElements()){ //do something } 处理一个节点 ZipEntry