使用 XML 定义制作三角形?
Posted
技术标签:
【中文标题】使用 XML 定义制作三角形?【英文标题】:Making a triangle shape using XML definitions? 【发布时间】:2011-01-31 20:01:52 【问题描述】:有没有一种方法可以在 XML 文件中指定三角形?
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="triangle">
<stroke android: android:color="#FFF" />
<solid android:color="#FFF" />
</shape>
我们可以用路径形状或其他东西来做到这一点吗?我只需要一个等边三角形。
谢谢
【问题讨论】:
您找到解决方案了吗?我也有同样的问题。 这似乎对编写指南的人(以及一些评论者)有用:Android: Draw Equilateral Triangle Shapes In Canvas 【参考方案1】:在this post 我描述了如何做到这一点。这是 XML 定义三角形:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<rotate
android:fromDegrees="45"
android:toDegrees="45"
android:pivotX="-40%"
android:pivotY="87%" >
<shape
android:shape="rectangle" >
<stroke android:color="@color/transparent" android:/>
<solid
android:color="@color/your_color_here" />
</shape>
</rotate>
</item>
</layer-list>
如果有不清楚的地方或者您需要解释它是如何构建的,请参阅我的帖子。它旋转了一个剪切矩形 :) 这是非常智能且运行良好的解决方案。
编辑: 创建一个箭头,如 --> 使用:
...
android:fromDegrees="45"
android:toDegrees="45"
android:pivotX="13%"
android:pivotY="-40%" >
...
并创建一个箭头,如
android:fromDegrees="45"
android:toDegrees="45"
android:pivotX="87%"
android:pivotY="140%" >
【讨论】:
对不起.. 但是等边三角形永远不可能是直角三角形。 @JacekMilewski -- 非常感谢!愿意分享下箭头的 pivotX/pivotY 参数是什么?剩下?对吗? 要旋转它,我会在布局 xml 文件中更改旋转,而不是在三角形定义本身中。 -1 。这不好。视图的实际尺寸大于屏幕上显示的尺寸。它应该已经包裹了边界。 您能否分享一下您是如何得出 fromDegrees、toDegrees、pivotX 和 pivotY 的值的?我有一个用例,无法更改布局文件中的旋转。【参考方案2】:<TextView
android:layout_
android:layout_
android:text="▼"/>
您可以获得here更多选项。
【讨论】:
你如何把这个值放到 xml 中? 复制这个TextView并粘贴到你的xml中 @user531069:把它放在你的 strings.xml 上:<string name="bottom_arrow">&#9660;</string>
我想要链接中的不同箭头,我复制并粘贴 以上是关于使用 XML 定义制作三角形?的主要内容,如果未能解决你的问题,请参考以下文章