guy*_*y_m 8 android android-drawable
我需要在Android中创建收据布局.这个想法很简单,一个带有锯齿形底边的矩形布局.
最好的结果是具有固定锯齿形尺寸(意味着固定的半三角形尺寸)的可绘制/布局,它将实时地根据形状的实际宽度乘以三角形的数量.如果需要,可以使用剪辑三角形.
这是一个很好的例子(编辑:我指的是底部之字形线):

我实际上并不知道如何创建它.想到9补丁,但似乎不合适.想到列表层可绘制水平偏移可能..
也许有可能创建一个带有单独缩放部分的9补丁,以保持之字形的宽高比...这也可以.
编辑 - 答案
使用@Luksprog的评论,我轻松地重新创建了我想要的东西.
这是一些代码:
图像(请注意,高度对应于源图像大小):
<ImageView
android:id="@+id/zigzag_bottom"
android:layout_width="match_parent"
android:layout_height="12dp"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@drawable/zigzag" />
Run Code Online (Sandbox Code Playgroud)
绘制:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ic_zigzag"
android:tileMode="repeat"
android:antialias="true"
/>
Run Code Online (Sandbox Code Playgroud)
您无法为该图像创建九条路径,因为无法在垂直或水平一侧定义可拉伸区域。要获得锯齿形图案,您可以提取锯齿形牙齿之一(及其背景阴影)并将其包装在BitmapDrawable具有tileMode在可绘制边界内重复包装图像的属性的属性中。这样,锯齿形的牙齿就会重复出现,您就可以组成图案了。
请注意,高度对应于源图像大小
这是一个令人高兴的场景,但您可以使其适用于高度不匹配的情况。例如,您可以将锯齿形包装BitmapDrawable在 a 中LayerDrawable(以及实际的视图可绘制对象(对于视图区域的其余部分)),然后用于setLayerInset()将可绘制对象放置在底部。您还可以创建自己的可绘制对象,通过重写 onDraw() 方法将之字形图案图像放置在底部。
| 归档时间: |
|
| 查看次数: |
3468 次 |
| 最近记录: |