我有一个ImageButton,想要缩放不同大小的按钮,这意味着图像不是正确的选择。所以我想到了一个自定义Shape作为源的ImageButton。
我希望按钮看起来像这样:
我从这开始,但被旋转的东西困住了:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<stroke
android:width="2dp"
android:color="@color/red" />
<rotate
android:fromDegrees="90"
android:toDegrees="135" >
<shape android:shape="line" >
<stroke
android:width="2dp"
android:color="@color/red" >
</stroke>
</shape>
</rotate>
<padding
android:bottom="7dp"
android:left="7dp"
android:right="7dp"
android:top="7dp" />
</shape>
然而,这并不像我预期的那样旋转。也许我完全错了,需要朝着正确的方向努力。 :-)谢谢。
答案 0 :(得分:0)
您是否考虑使用Bitmap并根据您的需要使用Bitmap.createScaledBitmap(...)方法对其进行缩放。然后你可以轻松地将它转换为BitmapDrawable,然后使用(你的按钮名称).setBackgroundDrawable(nameOfBitmapDrawable);
将此BitmapDrawable指定为按钮的背景。所以你要做的就是将那个图像(你的帖子中的那个)保存为drawable(也许是透明的PNG),然后将Drawable转换为Bitmap。从那里,你只需要按照我上面概述的步骤。希望这会有所帮助。
答案 1 :(得分:0)
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<gradient android:angle="270"
android:endColor="#000000"
android:centerColor="#00ccff"
android:startColor="#000000"
/>
<corners android:radius="5dp" />
</shape>
Try this
答案 2 :(得分:0)
我通过自定义Button
实现解决了这个问题,并覆盖了onDraw()
方法,如下所示:
@Override
public void onDraw(Canvas canvas)
{
width = getMeasuredWidth();
height = getMeasuredHeight();
// diagonal top left | bottom right
canvas.drawLine(0, 0, width, height, mPaint);
// diagonal top right | bottom left
canvas.drawLine(width, 0, 0, height, mPaint);
// horizontal top
canvas.drawLine(0, 0, width, 0, mPaint);
// horizontal bottom
canvas.drawLine(0, height, width, height, mPaint);
// vertical left
canvas.drawLine(0, 0, 0, height, mPaint);
//vertical right
canvas.drawLine(width, 0, width, height, mPaint);
}
您必须根据您想要中风的颜色和大小等设置mPaint
。