我怎么能ImageView在Android中创建圆形?
我尝试了以下代码,但它没有正常工作.
码:
Bitmap circleBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
BitmapShader shader = new BitmapShader (bitmap, TileMode.CLAMP, TileMode.CLAMP);
Paint paint = new Paint();
paint.setShader(shader);
Canvas c = new Canvas(circleBitmap);
c.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint);
imageView.setImageBitmap(circleBitmap);
Run Code Online (Sandbox Code Playgroud)
圆圈内的图像:

我怎样才能做到这一点?
如何在形状中添加背景图像?我在下面尝试的代码但没有成功:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
//here is where i need to set the image
<solid android:color="@drawable/button_image"/>
<corners
android:bottomRightRadius="5dp"
android:bottomLeftRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud) 我想制作一个带圆角边框的布局.如何应用特定大小的半径LinearLayout?
有人设法使用RoundedBitmapDrawable?如果我错了,请纠正我,但根据我的理解,它会从常规矩形图像中生成圆形图像.
到目前为止我尝试过的是这个
RoundedBitmapDrawable.createRoundedBitmapDrawable(getResources(), BitmapFactory.decodeResource(getResources(), iconResource))
Run Code Online (Sandbox Code Playgroud)
我试图实现的目标:将任何图像转换为圆形图像并使用ImageView显示它.
如果我把事情搞混了,我所说的都是无意义的.是否可以(或更简单)使用任何新框架?(Android L或新的支持库)
我有一个ImageView,我想用它rounded corners.
我用这个:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@null"/>
<stroke android:width="1dp"
android:color="#ff000000"/>
<corners android:radius="62px"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
并将此代码设置为我的imageview的背景.它可以工作,但我放在它上面的src图像ImageView是走出边界而不适应新的形状.
我该如何解决这个问题?
我希望图像有圆角.我实现了这个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) 我想做那样的事.

这是一个列表视图行,其中包含名称和用户图像.
我做了一些搜索并完成了图像循环,但不是完美的解决方案.任何帮助都会帮助我.
我的代码添加到Image Loader类
public Bitmap processBitmap(Bitmap bitmap) {
int pixels = 0;
if (mRound == 0)
pixels = 120;
else
pixels = mRound;
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
final float roundPx = pixels;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, …Run Code Online (Sandbox Code Playgroud) 我使用以下代码使用滑动将带圆角的图像加载到imageview中:
Glide.with(this)
.load(url)
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
})
.transition(withCrossFade())
.apply(new RequestOptions().transform(new RoundedCorners(50)).error(R.drawable.default_person).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE))
.into(mBinding.profileImgv);
Run Code Online (Sandbox Code Playgroud)
可能重复:
如何使图像适合android中的圆形框架
我想要一个360度圆形的Image View,我在stackoverflow上找到了相关的解决方案,但它们都在图像视图中产生了圆角.但我想要完整的圆形图像视图.
对于圆角图像视图链接是:
有什么想法吗.
Android杀了我.
我想为相对布局设置圆角,这很简单
可绘制的XML可能看起来像
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<padding android:left="1dp" android:top="1dp"
android:right="2dp" android:bottom="2dp" />
<solid android:color="#FFFFFF" />
<corners android:radius="15dp" />
<stroke
android:width="2dp"
android:color="#FFF" />
</shape>
Run Code Online (Sandbox Code Playgroud)
但.如果我插入相对布局其他布局或其他小部件像ImageView我没有cliped孩子 - 见图片

你怎么看我没有克隆儿童元素.
它是如何做到的?
也许这是有帮助的我想要这个圆角的工作就像iOS一样
givenView.layer.cornerRadius =roundAngle;
[givenView.layer setBorderColor:[[borderColor colorWithAlphaComponent:alphaBorder] CGColor]];
[givenView.layer setBorderWidth:borderWidth];
givenView.clipsToBounds = YES;
Run Code Online (Sandbox Code Playgroud)
此外,我想展示每个人认为填充它的解决方案:

这里设置填充.
对于正确的低估问题,请查看层次图片

在这里:
RelativeLayout - 将xml描述为背景,
LinearLayout - 具有复杂布局的自定义对象的容器,其中包含作为背景的图像和其他小部件
profileStatistic - 复杂的自定义小部件,在外部布局中有许多子对象.
布局的完整图片是:

内部控件的布局(profileStatistic):

PS我不需要9路径.问题不是关于9路!