我希望图像有圆角.我实现了这个xml代码并在我的图像视图中使用它.但图像与形状重叠.我正在通过异步任务下载图像.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="20dip" />
</shape>
<ImageView
android:id="@+id/trVouchersImage"
android:layout_width="55dp"
android:layout_height="55dp"
android:layout_marginLeft="8dp"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_alignParentLeft="true"
android:background="@drawable/ash_arrow"
/>
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个简单的自定义视图:有一个由弧路径显示的位图 - 从0deg到360deg.学位正在随着一些FPS而变化.
所以我使用重写onDraw()方法创建了一个自定义视图:
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
arcPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
canvas.drawArc(arcRectF, -90, currentAngleSweep, true, arcPaint);
arcPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, circleSourceRect, circleDestRect, arcPaint);
}
Run Code Online (Sandbox Code Playgroud)
arcPaint 初始化如下:
arcPaint = new Paint();
arcPaint.setAntiAlias(true);
arcPaint.setColor(Color.RED); // Color doesn't matter
Run Code Online (Sandbox Code Playgroud)
现在,一切都很棒,但是...整个视图中的背景是黑色的.
如果我设置canvas.drawColor(..., PorterDuff.Mode.DST)并省略canvas.drawBitmap()- 在透明背景上正确绘制圆弧.
我的问题是 - 如何设置PorterDuff模式以使其与透明度一起工作?
当然bitmap是具有alpha通道的32位PNG.
我正在努力使自己ImageView顺利。我已经编写了以下代码,使其看起来是圆形的,但不知何故它仍然显示方形ImageView。[使用毕加索获取图像]
Java代码:
ImageView iv = (ImageView) addLinkDialog.findViewById(R.id.group_icon_jsoup);
Picasso.with(getBaseContext()).load(GroupImageUrl).into(iv);
iv.setBackgroundResource(R.drawable.icon_img);
Run Code Online (Sandbox Code Playgroud)
ImageView代码:
<ImageView
android:id="@+id/group_icon_jsoup"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_gravity="center"
android:layout_margin="8dp"
android:background="@drawable/icon_img" />
Run Code Online (Sandbox Code Playgroud)
@ drawable / icon_img.xml:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/circle"/>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
@ drawable / circle.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="1.9"
android:useLevel="false" >
<solid android:color="@android:color/transparent" />
<stroke
android:width="10dp"
android:color="@android:color/white" />
</shape>
Run Code Online (Sandbox Code Playgroud) 我想在左侧制作带有白色边框和位图的按钮:
我有xml的背景:
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<corners android:radius="10.0dip"/>
<stroke
android:width="2px"
android:color="@android:color/white"/>
</shape>
</item>
<item>
<bitmap
android:gravity="left"
android:src="@drawable/vk_login">
</bitmap>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
结果是:
我不知道如何从位图制作边框和切角。使背景像第一张图片的最佳方法是什么?