我想创建一个像Material website一样的菱形形状的按钮:
我在网上搜索并没有找到答案,所以我在这里问。
我已经发现了如何创建菱形形状:
from Person p join p.hrpr h
这是我的图像按钮:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:height="60dp"
android:width="60dp"
android:right="20dp"
android:left="20dp"
android:gravity="center">
<rotate
android:fromDegrees="45"
android:pivotX="50%"
android:pivotY="50%" >
<shape
android:shape="rectangle">
<solid
android:color="@color/black" />
</shape>
</rotate>
</item>
“ @ drawable / ic_pause_white”是我导入的暂停图标矢量。
现在,我有一个带有菱形形状的暂停按钮,但是我的问题是,点击框与图像(如预期)
不匹配我已经尝试创建 OnTouchListener
<ImageButton
android:layout_width="85dp"
android:layout_height="85dp"
android:background="@drawable/button_test"
android:src="@drawable/ic_pause_white"
/>
但是我想知道是否有一种更简单的方法,并且是否没有使用上面的代码“ BitmapFactory.decodeResource(getResources(),R.drawable.button_test)” 是返回 null ,我不知道为什么。
提前谢谢,所有想要帮助我的人!
答案 0 :(得分:3)
更“技术正确”的解决方案的替代方案:如果使用方形背景,然后将图标顺时针旋转45度,然后将整个按钮逆时针旋转45度,该怎么办?
<ImageButton
android:background="@color/black"
app:srcCompat="@drawable/ic_camera_45deg"
android:rotation="-45"
android:layout_width="48dp"
android:layout_height="48dp"/>
这里的背景是纯色,因此您不会收到任何视觉触摸反馈。为此,您需要在Android 4上使用<selector>
绘图,在Android 5+上使用<ripple>
绘图。
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="@color/white"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<group
android:pivotX="12"
android:pivotY="12"
android:rotation="45">
<!-- Original paths go here. -->
</group>
</vector>
请注意tint
属性。如果您的图标不是24x24,请确保枢轴点位于viewportWidth
和viewportHeight
的中间。