Android利用selector(选择器)实现图片动态点击效果

简介: 本文介绍了Android中ImageView的`src`与`background`属性的区别及应用,重点讲解如何通过设置背景选择器实现图片点击动态效果。`src`用于显示原图大小,不拉伸;`background`可随组件尺寸拉伸。通过创建`selector_setting.xml`,结合`setting_press.xml`和`setting_normal.xml`定义按下和正常状态的背景样式,提升用户体验。示例代码展示了具体实现步骤,包括XML配置和形状定义。

前景与背景

知识点是来自于ImageView中XML的两个属性:src与background
src(前景):存放的是原图的大小,不会进行拉伸,图片是多大就显示多大(scaleType只对src起作用)
background(背景): 能根据ImageView组件中设置的长宽进行拉伸

Demo例子如下:

效果图

代码如下

其中前景图片与背景图片分别为
前景:(scaleType只对src起作用,android:scaleType="center"效果为:在视图中心显示图片,且不缩放图片)

背景:

进入主题

在Android中如果是给图片设置点击事件,为了用户的体验有必要添加动态点击效果

效果图如下:

主要代码如下

实现:

第一步:

在控件中设置背景为selector_setting:(记得加clickable标签----->设置是否可以点击)

第二步:创建selector_setting.xml文件:

第三步,找两张不同的图片(博主是用shape实现的):如下:

setting_press.xml

实现的效果:

setting_normal.xml

实现的效果:

源码如下:

selector_setting.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/setting_press"/>
<item android:drawable="@drawable/setting_normal"/>
</selector>
AI 代码解读

setting_press.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<!--shape:图片形状 oval:椭圆-->
<!--尺寸大小-->
<size android:width="32dp"
    android:height="32dp"/>
<!--弧度-->
<corners android:radius="10dp"/>
<!--填充色-->
<solid android:color="#99ffffff"/>
<!--渐变色-->
<solid android:color="#99ffffff"/>
</shape>
AI 代码解读

setting_normal.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<!--shape:图片形状 oval:椭圆-->
<!--尺寸大小-->
<size android:width="32dp"
    android:height="32dp"/>
<!--弧度-->
<corners android:radius="10dp"/>
<!--填充色-->
<solid android:color="#99ffffff"/>
<!--渐变色-->
<gradient android:startColor="#ff0000"
    android:centerColor="#00ff00"
    android:endColor="#0000ff"
    android:angle="-90"/>
</shape>
AI 代码解读
目录
打赏
0
3
3
0
100
分享
相关文章
Android内存优化之图片优化
本文主要探讨Android开发中的图片优化问题,包括图片优化的重要性、OOM错误的成因及解决方法、Android支持的图片格式及其特点。同时介绍了图片储存优化的三种方式:尺寸优化、质量压缩和内存重用,并详细讲解了相关的实现方法与属性。此外,还分析了图片加载优化策略,如异步加载、缓存机制、懒加载等,并结合多级缓存流程提升性能。最后对比了几大主流图片加载框架(Universal ImageLoader、Picasso、Glide、Fresco)的特点与适用场景,重点推荐Fresco在处理大图、动图时的优异表现。这些内容为开发者提供了全面的图片优化解决方案。
116 1
Android图片的手动放大缩小
本文介绍了通过缩放因子实现图片放大缩小的功能,效果如动图所示。关键步骤包括:1) 在布局文件中设置 `android:scaleType=&quot;matrix&quot;`;2) 实例化控件并用 `ScaleGestureDetector` 处理缩放手势;3) 使用 `Matrix` 对图片进行缩放处理。为避免内存崩溃,可在全局配置添加 `android:largeHeap=&quot;true&quot;`。代码中定义了 `beforeScale` 和 `nowScale` 变量控制缩放范围,确保流畅体验。
111 8
Android经典面试题之图片Bitmap怎么做优化
本文介绍了图片相关的内存优化方法,包括分辨率适配、图片压缩与缓存。文中详细讲解了如何根据不同分辨率放置图片资源,避免图片拉伸变形;并通过示例代码展示了使用`BitmapFactory.Options`进行图片压缩的具体步骤。此外,还介绍了Glide等第三方库如何利用LRU算法实现高效图片缓存。
149 20
Android经典面试题之图片Bitmap怎么做优化
Android异步加载图片详解之方式二(2)
FileCache.java如下: package com.cn.loadImages; import java.io.File; import java.
925 0
Android异步加载图片详解之方式二(1)
MainActivity.java如下: package com.cn.perfectlistview; import java.util.ArrayList; import android.
929 0
Android异步加载图片详解之方式一(3)
Utils.java如下: package cn.loadImages; import java.io.InputStream; import java.
1024 0
Android异步加载图片详解之方式一(2)
FileCache.java如下: package cn.loadImages; import java.io.File; import android.
825 0
Android异步加载图片详解之方式一(1)
MainActivity.java如下: package cn.ideallistview; import java.util.ArrayList; import android.
970 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等