zoukankan      html  css  js  c++  java
  • 自定义itemClickView

    极力推荐文章:欢迎收藏
    Android 干货分享

    阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android

    本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

    1. 自定义View类实现
    2. 自定义View标签
    3. 自定义View 布局
    4. 自定义View 选择器
    5. 自定义View 素材
    6. Activity使用自定义View

    ItemClickView Android非常常用,此实现效果类似于Android Settings界面,
    实现效果如下:

    自定义itemClickView

    1. 自定义View类实现

    public class ItemClickView extends RelativeLayout {
    	private static final String TAG = "ItemClickView";
    	private TextView tv_title;
    	private TextView tv_des;
    
    	public ItemClickView(Context context, AttributeSet attrs, int defStyle) {
    		super(context, attrs, defStyle);
    		initUI(context);
    	}
    
    	public ItemClickView(Context context, AttributeSet attrs) {
    		super(context, attrs);
    		initUI(context);
    	}
    
    	public ItemClickView(Context context) {
    		super(context);
    		initUI(context);
    	}
    
    	// 单独抽取出来的 xml--->view
    	private void initUI(Context context) {
    		View.inflate(context, R.layout.item_click_view, this);
    
    		tv_title = (TextView) findViewById(R.id.tv_title);
    		tv_des = (TextView) findViewById(R.id.tv_des);
    	}
    
    	/**
    	 * @param title
    	 *            要修改成的标题内容 修改标题的方法
    	 */
    	public void setTitle(String title) {
    		tv_title.setText(title);
    	}
    
    	/**
    	 * @param des
    	 *            描述内容字符串 修改描述内容方法
    	 */
    	public void setDes(String des) {
    		tv_des.setText(des);
    	}
    }
    

    2. 自定义View标签

        <com.programandroid.CustomView.ItemClickView
            android:id="@+id/custom_item_click_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/listview_item_selector" />
    

    3. 自定义View 布局

    <?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="wrap_content"
        android:layout_margin="5dp"
         >
    
        <TextView
            android:id="@+id/tv_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/primary_text_light"
            android:textSize="18sp" />
    
        <TextView
            android:id="@+id/tv_des"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/tv_title"
            android:textColor="@android:color/secondary_text_light"
            android:textSize="14sp" />
    
        <ImageView
            android:id="@+id/iv_arrow"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="10dp"
            android:background="@drawable/arrow_right_selector" />
    
    
    </RelativeLayout>
    

    4. 自定义View 选择器

    • 箭头选择器arrow_right_selector.xml
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- 按下状态 -->
        <item android:drawable="@drawable/arrow_right_pressed" android:state_pressed="true"/>
        <!-- 获取焦点 -->
        <item android:drawable="@drawable/arrow_right_pressed" android:state_focused="true"/>
        <!-- 正常状态 -->
        <item android:drawable="@drawable/arrow_right_normal"/>
    </selector>
    
    
    • item选择器 listview_item_selector .xml
    <?xml version="1.0" encoding="UTF-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <!-- 按下去的背景颜色显示效果 -->
        <item android:drawable="@drawable/list_item_bg_light_pressed" android:state_pressed="true"/>
        <!-- 获取焦点时背景颜色显示效果 -->
        <item android:drawable="@drawable/list_item_bg_light_pressed" android:state_focused="true"/>
        <!-- 没有任何状态下的背景颜色 -->
        <item android:drawable="@drawable/list_item_bg_light_normal"/>
    
    </selector>
    

    5. 自定义View 素材

    list_item_bg_light_normal.9.png
    list_item_bg_light_pressed.9.png

    arrow_right_pressed.png
    arrow_right_normal.png

    6. Activity使用自定义View

    Activity 使用自定义View的方法如下:

    	/**
    	 * 自定义 ItemClickView 调用
    	 */
    	private void InitItemClickView() {
    		// TODO Auto-generated method stub
    		ItemClickView mItemClickView = (ItemClickView) findViewById(R.id.custom_item_click_view);
    		mItemClickView.setTitle("About Phone");
    		mItemClickView.setDes("Android 7.0");
    		mItemClickView.setOnClickListener(new OnClickListener() {
    
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				Toast.makeText(getApplicationContext(), "点击自定义View,获取更多内容", 0)
    						.show();
    			}
    		});
    
    	}
    

    至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

    微信关注公众号:  程序员Android,领福利

  • 相关阅读:
    笔试题 输出金字塔 面试经典
    C++ 函数, 虚函数, 纯虚函数
    EJB 根据beanName引用EJB
    【J2EE性能分析篇】JVM参数对J2EE性能优化的影响【转】
    C++ 引用和指针作为函数参数的例子。请不要拍砖
    lucene 总结
    二维数组按列序号排序 面试经典
    http://www.linuxidc.com/Linux/201004/25494.htm
    银行取款费用
    PHP 生成 csv 文件时乱码解决
  • 原文地址:https://www.cnblogs.com/wangjie1990/p/11310733.html
Copyright © 2011-2022 走看看