2014-10-29 36 views
5

我想实现类似如下的内容: enter image description hereAndroid - 在Android中制作可重复图像的一部分?

注意的图像图案的三角形的右侧如何重复,直至碰到屏幕边缘。此外,三角形实际上不会是三角形(即图像不会是简单的形状),所以请注意这一点。 我对Android非常陌生,并且知道在iOS中可以设置图像的一部分进行重复。我不确定这是否也是如此,以及如果是这样如何?如果不是,那么推荐的方法是什么?

回答

6

要重复一个图像,你可以为这个位图设置TileMode。要在您的情况下将其移动到右侧,你可以定义层列表绘制,并给其项目左属性:

tile_background.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <bitmap android:src="@drawable/tile_start" android:gravity="left|bottom"/> 
    </item> 
    <item android:left="60px"> 
     <bitmap android:src="@drawable/tile" android:tileMode="repeat"/> 
    </item> 

</layer-list> 

只是一些布局:

<?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" > 

    <View 
     android:id="@+id/view1" 
     android:layout_width="wrap_content" 
     android:layout_height="26dp" 
     android:background="@drawable/tiled_background" /> 

</LinearLayout> 

enter image description here

+0

谢谢,我认为这将适用于更简单的形状,但我的图像稍微复杂一些 - 9补丁方法可能是帕蒂P如上所述的方式。查看我在他的帖子下的评论以了解更多细节。 – TomTaila 2014-10-29 14:18:51

+1

我知道什么Draw-9补丁是;-)但它们用于定义一个可以被拉伸的部分,而不是重复恐惧(可梯度或可调节的按钮)。你可以举一个更具体的例子来说明你试图获得什么。 – blender 2014-10-29 14:25:07

+0

你是绝对正确的,谢谢你的方法,事实上这有助于9补丁无法处理的更复杂的解决方案。对于我的情况9补丁足够,但为了灵活性,这个答案是完美的。谢谢! – TomTaila 2014-10-29 14:41:04

2

如果我理解正确的话,你可能想看看NinePatch图像http://developer.android.com/reference/android/graphics/NinePatch.html

九个补丁图像是在这个意义上的“智能”,他们能有一定的界限,可以被拉伸并在必要时重复进行。这里有一个快速的工具,可以给你一个更好的想法,http://romannurik.github.io/AndroidAssetStudio/nine-patches.html

+1

谢谢,我相信你已经把我放在了正确的方向。这里有两个链接详细描述事情: 简单概述: http://wiresareobsolete.com/2010/06/9-patches/ 具体信息: http://developer-dot-android.blogspot.com/2012 /03/android-9-patch-image-tutorial.html – TomTaila 2014-10-29 14:14:28