写点什么

Android- 自定义图像资源的使用(2)

用户头像
Android架构
关注
发布于: 4 小时前

/05_KindOfDrawableUse/src/com/wwj/drawable/LevelDrawableRes.java


package com.wwj.drawable;


import android.app.Activity;


import android.os.Bundle;


import android.view.View;


import android.widget.ImageView;


/**


  • 图像级别资源的使用

  • 在 res/drawable 建立图像级别资源

  • 然后在布局文件的控件中使用

  • @author wwj


*/


public class LevelDrawableRes extends Activity {


private ImageView ivLamp;


@Override


public void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);


setContentView(R.layout.level_res);


ivLamp = (ImageView) findViewById(R.id.imageview_lamp);


// 设置 Level 为 8,显示 lamp_off.png


ivLamp.setImageLevel(8);


}


public void onClick_LampOn(View view) {


// LevelListDrawable levelListDrawable =


// (LevelListDrawable)ivLamp.getDrawable();


// levelListDrawable.setLevel(15);


// 设置 Level 为 15,显示 lamp_on.png


ivLamp.setImageLevel(15);


}


public void onClick_LampOff(View view) {


// 设置 Level 为 6,显示 lamp_off.png


ivLamp.getDrawable().setLevel(6);


}


}


效果图如下:



过渡图像资源的使用




这个图像资源是用来展示图像过渡的,比如一盏灯从不亮到亮的缓慢过渡。


/05_KindOfDrawableUse/res/drawable/lamp_transition.xml


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


<transition xmlns:android="http://schemas.android.com/apk/res/android">


<item android:drawable="@drawable/lamp_off" />


<item android:drawable="@drawable/lamp_on" />


</transition>


/05_KindOfDrawableUse/res/layout/cross_fade_res.xml


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


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"


android:layout_width="fill_parent"


android:layout_height="fill_parent"


android:orientation="vertical" >


<ImageView


android:id="@+id/imageview_lamp"


android:layout_width="wrap_content"


android:layout_height="wrap_content"


android:src="@drawable/lamp_transition" />


<Button


android:layout_width="wrap_content"


android:layout_height="wrap_content"


android:onClick="onClick_LampOn"


android:text="开灯" />


<Button


android:layout_width="wrap_content"


android:layout_height="wrap_content"


android:onClick="onClick_LampOff"


android:text="关灯" />


</LinearLayout>


/05_KindOfDrawableUse/src/com/wwj/drawable/CrossFadeDrawableRes.java


package com.wwj.drawable;


import android.app.Activity;


import android.graphics.drawable.TransitionDrawable;


import android.os.Bundle;


import android.view.View;


import android.widget.ImageView;


/**


  • 淡入淡出资源的使用

  • @author wwj


*/


public class CrossFadeDrawableRes extends Activity {


private ImageView ivLamp;


@Override


public void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);


setContentView(R.layout.cross_fade_res);


ivLamp = (ImageView) findViewById(R.id.imageview_lamp);


}


public void onClick_LampOn(View view) {


// 从第一个图像切换到第二个图像。其中使用 1 秒的时间完成淡入淡出效果


TransitionDrawable drawable = (TransitionDrawable) ivLamp.getDrawable();


drawable.startTransition(1000);


}


public void onClick_LampOff(View view) {


// 从第二个图像切换第一个图像。其中使用 1 秒的时间完成淡入淡出效果


TransitionDrawable drawable = (TransitionDrawable) ivLamp.getDrawable();


drawable.reverseTransition(1000);


}


}


效果图如下:



嵌入图像资源的使用




/05_KindOfDrawableUse/res/drawable/inset.xml


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


<inset xmlns:android="http://schemas.android.com/apk/res/android"


android:drawable="@drawable/logo"


android:insetBottom="10dp"


android:insetLeft="10dp"


android:insetRight="10dp"


android:insetTop="10dp" >


</inset>


<!--


android:insetBottom="10dp" 图像距离下边的距离


android:insetLeft="10dp" 图像距离左标的距离


android:insetRight="10dp" 图像距离右边的距离


android:insetTop="10dp" 图像距离上边的距离


-->


/05_KindOfDrawableUse/res/layout/inset_res.xml


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


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"


android:layout_width="match_parent"


android:layout_height="match_parent"


android:orientation="vertical" >


<ImageView


android:layout_width="wrap_content"


android:layout_height="wrap_content"


android:background="@drawable/inset" />


</LinearLayout>


效果图如下:



剪切图像资源的使用




/05_KindOfDrawableUse/res/drawable/clip.xml


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


<clip xmlns:android="http://schemas.android.com/apk/res/android"


android:clipOrientation="horizontal"


android:drawable="@drawable/progress"


android:gravity="left" />


/05_KindOfDrawableUse/res/layout/clip_res.xml


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


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"


android:layout_width="fill_parent"


android:layout_height="wrap_content"


android:background="@drawable/background"


android:orientation="vertical" >


<ImageView


android:id="@+id/image"


android:layout_width="fill_parent"


android:layout_height="wrap_content"


android:background="@drawable/clip" />


</LinearLayout>


/05_KindOfDrawableUse/src/com/wwj/drawable/ClipDrawableRes.java


pac


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


kage com.wwj.drawable;


import android.app.Activity;


import android.graphics.drawable.ClipDrawable;


import android.os.Bundle;


import android.widget.ImageView;


/**


  • 剪切图像的使用

  • 在 res/drawable 目录下定义 clip 资源

  • @author wwj


*/


public class ClipDrawableRes extends Activity {


@Override


protected void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);


setContentView(R.layout.clip_res);


ImageView imageview = (ImageView) findViewById(R.id.image);


ClipDrawable drawable = (ClipDrawable) imageview.getBackground();


// 截取 30%的图像


drawable.setLevel(3000);


}


}


效果图如下:



比例图像资源的使用




/05_KindOfDrawableUse/res/drawable/scale.xml


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


<scale xmlns:android="http://schemas.android.com/apk/res/android"


android:drawable="@drawable/logo"


android:scaleGravity="center_vertical|center_horizontal"


android:scaleHeight="80%"


android:scaleWidth="80%" >


</scale>


这个比例图片没有效果,不知道为何


外形图像资源的使用




外形图像是用得比较多,可以实现自己想要的效果,比如一个文本框


/05_KindOfDrawableUse/res/drawable/shape.xml


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


<shape xmlns:android="http://schemas.android.com/apk/res/android"


android:shape="rectangle" >


<gradient


android:angle="45"


android:endColor="#80FF00FF"


android:startColor="#FFFF0000" />


<padding


android:bottom="7dp"


android:left="7dp"


android:right="7dp"


android:top="7dp" />


<stroke


android:width="2dp"


android:color="#FFF" />


<corners android:radius="8dp" />


</shape>


/05_KindOfDrawableUse/res/layout/shape_res.xml


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


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"


android:layout_width="fill_parent"


android:layout_height="fill_parent"


android:orientation="vertical" >


<TextView


android:layout_width="wrap_content"


android:layout_height="wrap_content"


android:layout_margin="20dp"


android:background="@drawable/shape"


android:text="Shape Label" />


</LinearLayout>


效果图如下:

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android-自定义图像资源的使用(2)