android 自定义view实现拖动放大缩小_自定义ItemToggleView

本文介绍如何在Android开发中创建自定义ItemToggleView组件,包括实现步骤、XML配置及在Activity中的应用。
ec30d0ea9f41b56f5d03a5f249a98146.png

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

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

  • 自定义View类实现
  • 自定义View标签
  • 自定义View 布局
  • 自定义View 选择器
  • 自定义View 素材
  • Activity 自定义view布局引用
  • Activity使用自定义View

自定义ItemToggleView 常用于Settings中,主要控制开关的开启与关闭。

自定义ItemToggleView实现效果如下:

4fd2566f75bcf13ae1e4fdfb3050734c.png

开启.jpg

cc6b69694d2deefc7e1db3ce11ced690.png

关闭.jpg

1. 自定义View类实现

public class ItemToggleView extends RelativeLayout { private static final String TAG = "ItemToggleView"; private TextView tv_title; private TextView tv_des; private static final String NAMESPACE = "http://schemas.android.com/apk/res/com.programandroid"; private String mDesTitle; private String mDesOff; private String mDesOn; private ImageView mImageView; private boolean isOnOFF; public ItemToggleView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initAttrs(attrs); initUI(context); } public ItemToggleView(Context context, AttributeSet attrs) { super(context, attrs); initAttrs(attrs); initUI(context); } public ItemToggleView(Context context) { super(context); initUI(context); } // 单独抽取出来的 xml--->view private void initUI(Context context) { View.inflate(context, R.layout.item_toggle_view, this); tv_title = (TextView) findViewById(R.id.tv_title); tv_des = (TextView) findViewById(R.id.tv_des); mImageView = (ImageView) findViewById(R.id.switch_imageview); tv_title.setText(mDesTitle); } public boolean getCheck() { return isOnOFF; } /** * @param isCheck * 传递一个选中未选中的状态变量(true 选中 false未选中) */ public void setCheck(boolean isCheck) { // mSwitchControlView.setChecked(isCheck); if (isCheck) { tv_des.setText(mDesOn); mImageView.setImageDrawable(getResources().getDrawable( R.drawable.toggle_on)); } else { tv_des.setText(mDesOff); mImageView.setImageDrawable(getResources().getDrawable( R.drawable.toggle_off)); } isOnOFF = isCheck; } /** * @param attrs * 包含了属性名称和属性值的set集合 */ private void initAttrs(AttributeSet attrs) { // 打印属性总个数 /* * Log.i(tag, "attrs.getAttributeCount() = "+attrs.getAttributeCount()); * for(int i=0;i

2. 自定义View标签

1.注意 :自定义 Android 命名空间

同Android命名空间(xmlns:android="http://schemas.android.com/apk/res/android" )方法一样,想使用自定义view的属性,必须声明自定义view的命名空间

(xmlns:programandroid="http://schemas.android.com/apk/res/com.programandroid")

2. 注意:自定义View 属性

自定义View 属性如下:

programandroid:desOff=" 不选中"

programandroid:desOn=" 选中"

programandroid:des

属性声明在res/values/attrs.xml中定义

<?xml version="1.0" encoding="utf-8"?>

3. 自定义View 布局

<?xml version="1.0" encoding="utf-8"?>

4. 自定义View 选择器

<?xml version="1.0" encoding="UTF-8"?>

5. 自定义View 素材

150d2c1583fb9f27f7fbdfa24dc42db0.png

toggle_off.png

d0eec49f527de33550ac010bcd840d65.png

toggle_on.png

6. Activity 自定义view布局引用

 

7. Activity使用自定义View

 /** * 自定义 ItemToggleView */ private void InitItemToggleView() { // TODO Auto-generated method stub final ItemToggleView mItemToggleView = (ItemToggleView) findViewById(R.id.custom_item_toggle_view); mItemToggleView.setCheck(false); mItemToggleView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mItemToggleView.setCheck(!mItemToggleView.getCheck()); } }); }

友情推荐:

Android 干货分享

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值