Android资源之图像资源(图像级别资源)
图像状态资源仅仅能定义有限的几种状态。
假设须要很多其它的状态,就要使用图像级别资源。
在该资源文件里能够定义随意多个图像级别。
每一个图像级别是一个整数区间,能够通过ImageView.setImageLevel或Drawable.setLevel方法切换不同状态的图像。
图像级别资源是XML格式的文件,必须将<level-list>标签作为XML的根节点。
<level-list>标签中能够有随意多个<item>标签,每个<item>标签表示一个级别区间。
级别区间用android:minLevel和android:maxLevel属性设置。
setImageLevel或setLevel方法设置的级别在某个区间内(android:minLevel<=level<=android:maxLevel),系统就会先用哪个区间相应的图像(用android:drawable属性设置)。在建立这个资源文件时。採用新建Android
XML时,没有根节点为<level_list>的xml。只是这不要紧,能够新建一个全新的普通的XML文件。然后写入对应代码就可以。
以下我给出一个详细的实例(开关灯):
lamp.xml图像级别资源文件例如以下:
<? xml version="1.0" encoding="UTF-8"? >
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/lamp_off" android:minLevel="6" android:maxLevel="10"></item>
<item android:drawable="@drawable/lamp_on" android:minLevel="12" android:maxLevel="20"></item>
</level-list>
上面的lamp.xml文件总共定义了两个级别的图像资源。
以下给出主页面布局文件main_layout.xml文件,例如以下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" > <ImageView
android:id="@+id/imageview_lamp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/lamp"
/> <Button
android:onClick="onClick_LampOn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开灯"
/>
<Button
android:onClick="onClick_LampOff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="关灯"
/>
</LinearLayout>
对应的MainActivity的代码例如以下:
package com.gc.drawablestudy; import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
/**author:Android将军*/
public class MainActivity extends Activity {
private ImageView ivLamp; @SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Resources res=getResources();
//Drawable drawable=res.getDrawable(R.drawable.bitmap_test);
//TextView txt=(TextView)findViewById(R.id.textView);
//txt.setBackground(drawable);
ivLamp=(ImageView)findViewById(R.id.imageview_lamp);
//设置level为8。显示lamp_off.png
ivLamp.setImageLevel(8); } //"开灯"button的单击事件方法
public void onClick_LampOn(View view)
{
//设置level为15,显示lamp_on.png
ivLamp.setImageLevel(15);
}
//"关灯"button的单击事件方法
public void onClick_LampOff(View view)
{
//设置level为6,显示lamp_off.png
ivLamp.setImageLevel(6);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} }
结合上一篇的博文,大家能够看出,图像状态资源与图像级别资源都能够用来实现button不同状态显示不同的图像的效果,假设你的控制仅仅需显示2个或3个效果你能够使用图像状态资源,可是假设你想显示很多其它的效果。还是使用图像级别资源。
案例效果截图例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW5kcm9pZF9qaWFuZ2p1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
转载请注明出处:
http://blog.csdn.net/android_jiangjun/article/details/32308551
Android资源之图像资源(图像级别资源)的更多相关文章
- (转) OpenCV学习笔记大集锦 与 图像视觉博客资源2之MIT斯坦福CMU
首页 视界智尚 算法技术 每日技术 来打我呀 注册 OpenCV学习笔记大集锦 整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的 ...
- Android开发人员必知的开发资源
developer.android.com 官方开发人员网站推荐资源 在动手编写第一个 Android 应用之前,用心读一读 Android Design 章节.尤其是以下的这些文章: Devices ...
- android源码framework下添加新资源的方法
编译带有资源的jar包,需要更改frameworks层,方法如下: 一.增加png类型的图片资源 1.将appupdate模块所有用到的png格式图片拷贝到framework/base/core/re ...
- Android学习15--使用(Drawable)资源
1.图片资源 图片资源是最简单的Drawable资源.仅仅要把*.png.*.jpg*..gif等格式的图片放入/res/drawable-XXX文件夹下,Android SDK就会在编译应用自己主动 ...
- [Android]使用化名(alias)功能防止相同资源的重复
在为一个应用匹配不同资源文件的时候,有时可能需要在不同适配类型的资源路径下使用相同的资源文件,这时使用alias方法可以防止相同资源文件的重复,提高效率.以下摘自Android开发文档http://d ...
- 深入探索Android热修复技术原理读书笔记 —— 资源热修复技术
该系列文章: 深入探索Android热修复技术原理读书笔记 -- 热修复技术介绍 深入探索Android热修复技术原理读书笔记 -- 代码热修复技术 1 普遍的实现方式 Android资源的热修复,就 ...
- 静态资源(StaticResource)和动态资源(DynamicResource)
静态资源(StaticResource)和动态资源(DynamicResource) 资源可以作为静态资源或动态资源进行引用.这是通过使用 StaticResource 标记扩展或 DynamicRe ...
- 使用KRPano资源分析工具分析动态网站资源
软件交流群:571171251(软件免费版本在群内提供) krpano技术交流群:551278936(软件免费版本在群内提供) 最新博客地址:blog.turenlong.com 限时下载地址:htt ...
- zzy:请求静态资源和请求动态资源, src再次请求服务器资源
[总结可以发起请求的阶段:请求动态资源:通过web.xml匹配action然后,自定义Servlet处理该action1)form表单提交请求的时候,用action设定,该页面发起请求的Servlet ...
随机推荐
- 对比hive和mysql 复杂逻辑流处理
1.Mysql中可用存储过程和函数来实现复杂逻辑处理,两者的对比如下:存储过程作为可执行文件,编译一次放在数据库中,函数又返回值.可设定使用权限. 存储过程中可使用游标,声明变量.用call调用. ...
- 梦想CAD控件自定义实体实现
一.增加自定义实体对象 调用DrawCustomEntity函数,绘制一个自定义实体对象. 下面代码绘制一个自定义实体,C#代码实现如下: private void DrawMlineCommand( ...
- Spring框架系列(五)--面向切面AOP
背景: 当需要为多个不具有继承关系的对象引入一个公共行为,例如日志.权限验证.事务等功能时,如果使用OOP,需要为每个对象引入这些公共 行为.会产生大量重复代码,并且不利用维护.AOP就是为了解决这个 ...
- js实现字符串反转
方案1: var str = "abcdef"; console.log( str.split("").reverse().join("") ...
- Linux常用命令——帮助命令
1.帮助命令:man man 命令 获取指定命令的帮助 [dmtsai@study ~]$ man date DATE (1) User Commands DATE(1) #注意这个(1),代表的是m ...
- 获取最新ADT下载地址的方法
最近网络不给力,谷歌上不去,想下个最新的ADT插件也难,于是寻找方法,最后找到一个不错的方法,问题解决过程如下(别嫌我啰嗦啊). 网上有人分享过下载ADT插件的页面地址:install-adt.htm ...
- MyBatis 的基本要素—核心对象
MyBatis 三个基本要素 ➢ 核心接口和类 ➢ MyBatis 核心配置文件(mybatis-config.xml) ➢ SQL 映射文件(mapper.xml) MyBatis 核心接口和类 ...
- 05 Python运算符
Python运算符: 此图来源于菜鸟教程,更详细参考 http://www.runoob.com/python3/python3-basic-operators.html 说明: 同一优先级的通常从左 ...
- SQL学习笔记:表的约束
目录 NOT NULL约束 INDEX 索引 CHECK 约束 DEFAULT 约束 UNIQUE 约束 PRIMARY KEY 约束 FOREIGN KEY 约束:简单的说,就是创建表的时候,对表或 ...
- Spring security 5 Authorize Configuration
1. Spring Security 核心请求,认证配置类 WebSecurityConfigurerAdapter protected void configure(HttpSecurity htt ...