利用LayerDrawable一次加载多张图片和改变SeekBar的外观

简介: MainActivity如下: package cc.testlayerdrawable;import android.os.Bundle;import android.

MainActivity如下:

package cc.testlayerdrawable;

import android.os.Bundle;
import android.widget.ImageView;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
/**
 * Demo描述:
 * LayerDrawable使用示例
 * 1 改变SeekBar的外观
 * 2 利用LayerDrawable使ImageView一次加载多张图片
 *   2.1 xml方式实现
 *   2.2 代码方式实现
 * 
 * 示例备注:
 * 使用LayerDrawable时系统将会按这些Drawable对象的数组顺序来绘制它们
 * 索引最大的Drawable对象将会被绘制在最上面.这一点在采用代码实现
 * LayerDrawable的时候得以很好的体现.可见参考资料2.
 * 
 * 参考资料
 * 1 Android疯狂讲义(第二版) 作者李刚
 * 2 http://wang-peng1.iteye.com/blog/657275
 * 3 http://blog.csdn.net/lee576/article/details/7825930
 *   Thank you very much
 *
 */
public class MainActivity extends Activity {
    private ImageView mImageView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		init();
	}

	//利用LayerDrawable(代码)使ImageView一次加载多张图片
	private void init(){
		mImageView=(ImageView) findViewById(R.id.imageView);
		Drawable [] drawables=new Drawable[2];
		drawables[0]=getResources().getDrawable(R.drawable.e);
		drawables[1]=getResources().getDrawable(R.drawable.ic_launcher);
		LayerDrawable layerDrawable=new LayerDrawable(drawables);
		mImageView.setImageDrawable(layerDrawable);
	}
}


main.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" >

    <SeekBar
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:max="100" 
        android:progressDrawable="@drawable/seekbarlayer"/>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/imageviewlayer" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>


imageviewlayer.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    
    <item>
        <bitmap android:src="@drawable/e" android:gravity="center"/>
    </item>
    
    <item android:top="25dp" android:left="25dp">
        <bitmap android:src="@drawable/ic_launcher" android:gravity="center"/>
    </item>
    
    <item android:top="60dp" android:left="55dp">
        <bitmap android:src="@drawable/ic_launcher" android:gravity="center"/>
    </item>
    
</layer-list>


seekbarlayer.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
	<!-- 定义轨道的背景 -->
	<item android:id="@android:id/background" android:drawable="@drawable/e" />
	<!-- 定义轨道上已完成部分的外观-->
	<item android:id="@android:id/progress" android:drawable="@drawable/ic_launcher" />
</layer-list>     


 

相关文章
|
5月前
qrc-标签和按钮、调色板加载图片
qrc-标签和按钮、调色板加载图片
24 0
|
8月前
|
前端开发 开发者
|
10月前
|
定位技术
百度标注地图markers图片icon不正常显示的样式冲突解决方案
百度标注地图markers图片icon不正常显示的样式冲突解决方案
103 0
|
11月前
图片和文件预览组件(部分源码),可拖动,缩小,放大。 #41
图片和文件预览组件(部分源码),可拖动,缩小,放大。 #41
90 0
|
iOS开发
iOS开发-改变图片的颜色
iOS开发-改变图片的颜色
350 0
SwiftUI—如何下载并使用图像视图显示网络图片
SwiftUI—如何下载并使用图像视图显示网络图片
1558 0
SwiftUI—如何下载并使用图像视图显示网络图片
SwiftUI—如何以动画的方式显示或隐藏指定的位图
SwiftUI—如何以动画的方式显示或隐藏指定的位图
278 0
SwiftUI—如何以动画的方式显示或隐藏指定的位图
|
C++
duilib corner属性的贴图技巧——让图片自动贴到控件的的某一边或者一角并自适应控件的大小
转载请说明原出处,谢谢~~          Duilib给控件贴图功能可以附带多个属性,各个属性的配合可以达到许多效果。以下是duilib支持的所有贴图属性: 贴图描述:          Duilib的表现力丰富很大程度上得益于贴图描述的简单强大。
1720 0
|
API Android开发
【Android 内存优化】自定义组件长图组件 ( 长图滚动区域解码 | 手势识别 GestureDetector | 滑动计算类 Scroller | 代码示例 )
【Android 内存优化】自定义组件长图组件 ( 长图滚动区域解码 | 手势识别 GestureDetector | 滑动计算类 Scroller | 代码示例 )
128 0
【Android 内存优化】自定义组件长图组件 ( 长图滚动区域解码 | 手势识别 GestureDetector | 滑动计算类 Scroller | 代码示例 )