`

使用Layer List实现多图层叠加

 
阅读更多

我的需求很简单:使用重叠的小图来代替一张大图作为背景,因为大图很占内存,这个在移动开发中是不能容忍的(当然前提是该图可以通过小片的图重叠得到)。但是还有额外的要求就是原先的大图是有stroke的,就是边框,我用重叠的图片必须没有边框(可以选择高度保持,宽度截取一部分,这样左右两边就没有边框)。

 

解决方案也很简单,比较容易想到,就是使用Layer List:定义一个item为shape,用来添加stroke做为重叠后的图片的边框,再定义一个item为bitmap,设置tileMode为repeat,并且为了保证图片不被拉伸变形之类的,设置gravity为center,另外设定一些left,right的偏移,以便能显示出来shape的stroke。

 

之所以需要在此记录一下,就是我碰到一个超级恶心的问题,就是在3.0以下的系统,重叠的图片之间会有很明显的线。。。这个纠结我好久了。。害我差点放弃这个解决方案,而用一个么有边框的难看的背景。。还好我隔了一段时间又开始看这个问题(好长好多废话。。)。分析之后发现好像是定义的shape默认会是黑色,可能我之前的图片是有一定透明度的,所以会显示出来,但是至于为什么只在图片之间能明显的看出来我就不清楚了。。所以,将shape的颜色设定为透明的就可以了。。

 

下面是定义的xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
	<item>
		<shape>
	            <!-- define border-->
		    <stroke 
		        android:width="*dp"
		        android:color="#********"/>
                    <!--set color-->
		    <solid
		        android:color="#00******" />
		</shape>
	</item>
    <item 
    	android:left="*dp" 
    	android:right="*dp">
        <!--repeat bitmap-->
    	<bitmap 
    		android:src="@drawable/****" 
    		android:tileMode="repeat" 
    		android:gravity="center" />
    </item>
</layer-list>
 
分享到:
评论

相关推荐

    39.(leaflet篇)leaflet叠加geojson图层(实现tooltip内部元素可点击).rar

    在本教程中,我们将深入探讨如何使用Leaflet库叠加GeoJSON图层,并实现图层上的Tooltip内部元素可点击的功能。Leaflet是一个轻量级的JavaScript库,专为Web地图设计,而GeoJSON则是一种用于存储地理数据的标准格式,...

    Android经典设计源码-Layer-listSample.rar

    在Android开发中,Layer-list是一种重要的图形资源类型,它允许开发者通过XML定义多个图层,这些图层将按照在XML中的顺序进行堆叠显示。这个压缩包“Android经典设计源码-Layer-listSample”显然是一个示例项目,...

    OpenLayers3实现图层控件功能

    var layerList = document.getElementById('layerList'); map.getLayers().forEach(function(layer, index) { var li = document.createElement('li'); var checkbox = document.createElement('input'); ...

    应用源码之Layer-listSample.zip

    在Android开发中,`Layer-list`是一个非常重要的资源类型,常用于组合多个图形元素,创建复杂的布局或图层效果。本资源包`Layer-listSample.zip`提供了关于`Layer-list`的源码示例,帮助开发者深入理解其工作原理和...

    安卓Android源码——Layer-listSample.rar

    8. **与其它图形资源的结合**:Layer-list可以与其他图形资源(如StateListDrawable、LevelListDrawable等)结合使用,以实现更复杂的交互和视觉效果。 通过理解和掌握Layer-listSample项目,开发者能更好地利用这...

    闪屏页ShapeDemo

    在这个项目中,开发者将学习到几个关键知识点,包括Shape、Selector、layer_list以及如何实现秒开无白屏效果和分屏过渡动画。 1. **Shape**: Shape是Android中的一个XML元素,用于定义基本的几何形状,如矩形、椭圆...

    Android编程使用自定义shape实现shadow阴影效果的方法

    在阴影效果的实现中,通常会使用`layer-list`来组合多个形状,以达到阴影和内容的分层效果。`layer-list`中的每个`item`代表一个图层,通过调整它们的位置和颜色,可以模拟出阴影。 上述代码示例中,`layer-list`...

    LayerDrawable

    这种组合方式使得我们能够方便地实现复杂的布局效果,如图层叠加、渐变、动画等。 LayerDrawable的核心是`android.graphics.drawable.LayerDrawable`类,它继承自`Drawable`,通过`&lt;layer-list&gt;`标签在XML资源文件...

    Android重叠的图片

    10. **图层列表资源(layer-list)**:在res/drawable目录下创建一个layer-list资源文件,可以将多个图片视为一个单一的Drawable对象,通过调整各层的层级和大小实现重叠。 综上所述,Android中实现图片重叠的方法...

    Android LayerDrawable使用实例

    - **XML方式**:在XML资源文件中创建一个`layer-list`标签,并包含多个`item`标签。每个`item`标签内部可以是任意类型的Drawable,如BitmapDrawable、ShapeDrawable等。通过`android:gravity`和定位属性来控制每个...

    仿照主题选择QQ界面

    3. **图层列表(Layer List)**:可以创建图层列表资源,通过叠加多个图形元素来实现复杂的背景或装饰效果。 4. **九宫格图片(Nine-Patch)**:使用9-patch图片可以实现自适应大小的图片,常用于按钮和背景。 5. ...

    ArcGIS for Android Api v1.0.1

    API提供了丰富的地图渲染选项,包括不同风格的地图服务、图层透明度控制、图层叠加以及自定义符号系统。此外,还可以添加动态和静态图层,如Tiled Map Service、Dynamic Map Service、Feature Layer等。 3. **图层...

    以一个着色游戏展开讲解Android中区域图像填色的方法

    \n\n### 三、编码与实现\n\n#### (1) layer-list配置\n\n在Android中,我们可以使用`layer-list`资源来创建图层叠放的Drawable。在XML布局文件中定义一个`&lt;layer-list&gt;`,将每个图层的`Drawable`作为`&lt;item&gt;`添加...

    Android绘图技巧使用详解

    通过`&lt;layer-list&gt;`标签,我们可以叠加多个图片或者Shape,每个`&lt;item&gt;`标签代表一个图层,通过调整`android:left`, `android:right`, `android:top`, `android:bottom`属性来控制图层的位置。这样,我们就可以创建...

    android4种引导界面

    实现方式是在`res/drawable`下创建一个形状图层(Layer-List)作为背景,其中包含一个矩形和一个圆形,分别代表半透明区域和高亮区域。在`activity_guide.xml`布局文件中,使用`RelativeLayout`作为根布局,将需要...

    android开发使用的透明图片集2

    6. **图层列表Drawable**:通过`&lt;layer-list&gt;`标签,可以在一个Drawable中组合多个图片,创建复杂的图形,如带有阴影或边框的按钮。 7. **Shape Drawable**:结合Shape Drawable(如Rectangle, Oval, Line, Ring等...

    Flex for ArcGIS开发

    当开发者希望在不同的地图类型之间进行切换时,可以使用多个`ArcGISTiledMapServiceLayer`对象,并通过控制它们的可见性来实现。这种方式非常适合于需要展示不同数据源或视图的应用场景。 **代码解析**: ```xml ...

    arcgis工具

    23.同一图层使用Clip实现图斑的无缝拼接 当一个图斑的边界确定,需要实现两个图斑的无缝拼接时,可以把图斑拉伸覆盖确定边界的图斑的一部分,然后用下面的图斑剪区上面的图斑。 方法二:图斑之间有小的缝隙,可以...

    android界面效果实例

    4. **图片资源与图层列表(Image Resources & Layer List)** 图片资源在界面设计中不可或缺,Android支持多种图像格式。图层列表可以将多个图像组合在一起,创建出复杂的图像效果,如按钮的按下状态、背景叠加等。...

Global site tag (gtag.js) - Google Analytics