图像资源(Drawable)基础应用

1.普通图像资源
Android支持图像格式   png   jpg
布局文件中可以使用如下格式:
<ImageView 
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:src="@android:drawable/alert_light_frame"/> 
使用图像资源的Java代码:
Resources  res = getResources();
Drawable  drawable = res.getDrawable(R.drawable.icon); 

2.XML图像资源
XML图像资源就是在XML文件中指定drawable目录中的图像资源,通过<bitmap> 标签定义
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
    android:src="@android:drawable/ic_dialog_alert"
    android:tileMode="repeat">   
</bitmap> 

3.Nine-Patch图像资源
Nine-Patch图像资源与 普通图像资源类似,  只是 Nine-Patch图像资源文件必须以 9.png作为文件扩展名,  也可以在 XML图像 中建立 Nine-Patch图像资源    eg:   abc.9.png  face.9.png
<?xml version="1.0" encoding="utf-8"?>
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android" 
    android:src="@drawable/ic_launcher"
    android:dither="false"
    android:autoMirrored="false">
</nine-patch>

4.图层(Layer)资源
图层资源有些类似于<FrameLayout>,  但是 图层资源中的每一层只能包含图像。定义 图层(Layer)资源必须使用<layer-list>作为根节点, <layer-list>标签中可以包含多个<item>标签,每一个<item>表示一个图像,最后一个<item>标签会显示在最顶层。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
       <bitmap android:src="@drawable/ic_launcher"  android:gravity="center"/>
    </item>
    
    <item android:top="10dp"  android:left="10dp">
        <bitmap android:src="@drawable/ic_launcher"  android:gravity="center"/>
    </item>
    
    <item android:right="10dp"  android:bottom="10dp">
        <bitmap android:src="@drawable/ic_launcher"  android:gravity="center"/>
    </item>
</layer-list> 

5.图像状态(State)资源
图像状态(State)资源大多都用在Button时。当点击按钮的时候,会有点击炫酷效果。   图像状态(State)资源必须以<selector>标签作为根节点。标签中包含了若干个<item>标签
<?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/ic_launcher"></item>
    <item android:state_focused="true" android:drawable="@drawable/ic_launcher"></item>
    <item android:drawable="@drawable/ic_launcher"></item>
</selector>

6.图像级别(Level)资源
在图像资源文件中可以定义多个图像级别,每个图像级别是一个整数区间,可以通过  ImageView.setImageLevel  或  Drawable.setLevel方法切换不同状态的图像
XML中将<level-list>标签作为根节点
<? 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>

7.淡入淡出(Cross-fade)资源
淡入淡出资源,做出更酷更炫的效果 跟标签<transition>
<? xml version="1.0" encoding="utf-8" ?>
<transition   xmlns:android="http://schemas.android.com/apk/res/android"  >
     <item android:drawable = "@drawable/lamp_off"> </item>
     <item android:drawable = "@drawable/lamp_on" ></item>
</ transition >
从第一个图像切换到第二个图像要使用TransitionDrawable.startTransition()
从第一个图像切换到第二个图像要使用TransitionDrawable.reverseTransition()

8.嵌入(Inset)图像资源
显示的图像 要求 小于 装载图像的视图,可以考虑使用嵌入图像资源。跟标签<inset>标签
<?xml version="1.0" encoding="utf-8"?>
< inset xmlns:android="http://schemas.android.com/apk/res/android"
     android:drawable="@drawable/ic_launcher"
     android:insetLeft="10dp"
     android:insetTop="10dp"
     android:insetRight="10dp"
     android:insetBottom="10dp">
</inset>

9.剪切(Clip) 图像资源
使用 剪切(Clip) 图像资源可以只显示一部分图像, 这种资源经常用于进度条的制作(准备两个png图像,background.png  progress.png)
剪切(Clip) 图像资源的跟标签<clip>
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/ic_launcher"
    android:clipOrientation="horizontal"//截取的方向
    android:gravity="left">
</clip>


10.比例(Scale)图像资源
比例(Scale)图像资源可以将图像放大或缩小  跟标签<scale>
下面的代码实现按原图的80%显示
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/ic_launcher"
    android:scaleWidth="80%"//宽度方向缩放的比例
    android:scaleHeight="80%" //高度方向缩放的比例
    android:scaleGravity="center_vertical|center_horizontal"//图像显示的位置
    android:useIntrinsicSizeAsMinimum="true">
</scale>

11.外形(Shape)资源
通过 外形(Shape)资源,可以为控件加上渐变背景色,可以使控件的4个角变成圆形,以及设置控件内容到控件边界的距离等。
跟标签<shape>     <shape>标签的  anroid:shape属性可以指定要绘制的形状     rectangle(矩形)    oval(椭圆)    line(直线)    ring(圆环)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">
    <!-- 定义渐变色(从左下角到右上角绘制渐变色) -->
    <gradient  android:startColor="#FFFF0000"  android:endColor="#80FF00FF"  android:angle="45"/>
    
    <!-- 定义控件内容到边界的距离 -->
    <padding   android:left="7dp" android:top="7dp"  android:right="7dp"  android:bottom="7dp"/>
    
    <!-- 定义边框线(边框线宽度是2, 颜色为白色) -->
    <stroke   android:width="2dp" android:color="#FFF"/>
    
    <!-- 定义圆角(圆角半径是8) -->
    <corners android:radius="8dp"/>
</shape>





























 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值