5
A
回答
9
最适合你的解决办法是使用VectorDrawable:
六角形状矢量绘制:
<vector android:height="24dp" android:viewportHeight="628.0"
android:viewportWidth="726.0" android:width="27dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#00ffffff"
android:pathData="m723,314c-60,103.9 -120,207.8 -180,311.8 -120,0 -240,0 -360,0C123,521.8 63,417.9 3,314 63,210.1 123,106.2 183,2.2c120,0 240,0 360,0C603,106.2 663,210.1 723,314Z"
android:strokeColor="#000000" android:strokeWidth="4"/>
</vector>
更新(28:07.2016):
支持以下棒棒糖使用支持库API http://android-developers.blogspot.com/2016/02/android-support-library-232.html记得用VectorDrawableCompat代替VectorDrawable
0
您可以使用VectorDrawable(VectorDrawableCompat老版本)https://developer.android.com/studio/write/vector-asset-studio.html。您可以从.svg文件轻松导入形状。
1
虽然大多数的解决方案将涉及包括ShapeImageView(这是一个伟大的图书馆,顺便说一句),你总是可以编写自己的逻辑来创建一个自定义的六边形布局。
您只需定义对象的属性,然后在使用Canvas的布局的onDraw()方法中使用该对象。
这是如何创建六角形路径。
float midx = getWidth()/2;
float midy = getHeight()/2;
Path p = new Path();
p.moveTo(midx, midy);
p.lineTo(midx+150, midy + 220);
p.lineTo(midx, midy + 220);
p.lineTo(midx-150, midy + 220);
p.lineTo(midx-300, midy);
p.lineTo(midx-150, midy-220);
p.lineTo(midx+150, midy-220);
p.lineTo(midx+300, midy);
p.lineTo(midx+150, midy + 220);
return p;
现在,在您的自定义六边形布局中,在onDraw()中使用此路径。
@Override
protected void onDraw(Canvas canvas) {
Path clipPath = new Path();
clipPath.addPath(p); //p is the path you created above
canvas.clipPath(clipPath);
canvas.drawColor(Color.RED); //optional
super.onDraw(canvas)
}
一旦你有你的自定义布局准备好了,你可以布局的背景设置为你想要的任何绘制(就像你对任何其他布局做)。
相关问题
- 1. 在六角形网格中创建六角形按钮的最佳方式
- 2. JointJS创建自定义形状,钻石,六角形
- 3. 六角形/形状中的随机点
- 4. 以六角形的形状裁剪UIImage?
- 5. 如何创建圆角形状的ListView
- 6. 如何创建矩形背景的六角形?
- 7. 使用jQuery绘制六角形形状
- 8. 我们如何在网络中创建六边形形状vis.js
- 9. 如何用css创建角边形状?
- 10. Android如何以编程方式创建三角形和矩形形状?
- 11. 创建一个三维六角形图
- 12. 如何从SpriteKit框架中从SKPhysicsBody获取六角形形状
- 13. 如何在Bootstrap下创建三角形形状?
- 14. 如何在android中创建形状三角形
- 15. android创建使用xml形状的弧形矩形
- 16. 如何创建使用WPF的六角形菜单?
- 17. 在六角形网格中捕捉到最近的六角形中心
- 18. 如何在iPhone/iPad上创建六角形
- 19. 如何在pyqt4中创建六角形pushButton?
- 20. 如何在famo.us中创建六角形自定义曲面
- 21. 如何为Google地图嵌入创建六角形iFrame?
- 22. 如何绘制一个完美的三角形六角形?
- 23. 在圆角创建CSS3形状?
- 24. 如何将一个六角形网格变成一个挤压的六角形网格?
- 25. 六角形平面的形状和运动表示
- 26. 使六边形形状的边框,圆角和透明背景
- 27. 如何设置使用Javascript和六角形瓷砖的六角形地图?
- 28. 六角形图像
- 29. 绘制六角形
- 30. html中的六角形单元格
想要在'Image View'背景中使用吗?或任何其他目的。 –
是的,我想在ImageView背景中使用。所以我想要.xml格式的这个形状 – suraj
http://stackoverflow.com/a/22987264/1992254 – Tejas