android - 如何在android studio中禁用圆形图像
问题描述
我为 android 应用程序购买了一个模板,其中包含 listview 和另一个带有圆形图像的文件,我想禁用它
这是 roundimage.java 文件
package com.TEST.TEST;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Shader;
import android.graphics.drawable.Drawable;
public class RoundImage extends Drawable {
private final Bitmap mBitmap;
private final Paint mPaint;
private final RectF mRectF;
private final int mBitmapWidth;
private final int mBitmapHeight;
public RoundImage(Bitmap bitmap) {
mBitmap = bitmap;
mRectF = new RectF();
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setDither(true);
final BitmapShader shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
mPaint.setShader(shader);
mBitmapWidth = mBitmap.getWidth();
mBitmapHeight = mBitmap.getHeight();
}
@Override
public void draw(Canvas canvas) {
canvas.drawOval(mRectF, mPaint);
}
@Override
protected void onBoundsChange(Rect bounds) {
super.onBoundsChange(bounds);
mRectF.set(bounds);
}
@Override
public void setAlpha(int alpha) {
if (mPaint.getAlpha() != alpha) {
mPaint.setAlpha(alpha);
invalidateSelf();
}
}
@Override
public void setColorFilter(ColorFilter cf) {
mPaint.setColorFilter(cf);
}
@Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT;
}
@Override
public int getIntrinsicWidth() {
return mBitmapWidth;
}
@Override
public int getIntrinsicHeight() {
return mBitmapHeight;
}
public void setAntiAlias(boolean aa) {
mPaint.setAntiAlias(aa);
invalidateSelf();
}
@Override
public void setFilterBitmap(boolean filter) {
mPaint.setFilterBitmap(filter);
invalidateSelf();
}
@Override
public void setDither(boolean dither) {
mPaint.setDither(dither);
invalidateSelf();
}
public Bitmap getBitmap() {
return mBitmap;
}
}
这是文件的一部分,我想禁用舍入
if (isExist != false){
Bitmap theImage = BitmapFactory.decodeStream(imageStream);
roundedImage = new RoundImage(theImage);
imgIcon.setImageDrawable(roundedImage);
}
else {
Bitmap bm = BitmapFactory.decodeResource(getResources(),R.mipmap.author);
roundedImage = new RoundImage(bm);
imgIcon.setImageDrawable(roundedImage);
}
如何禁用图像的舍入或控制其角以将其更改为零
解决方案
请测试此代码而不是您的代码:
if (isExist != false){
roundedImage = BitmapFactory.decodeStream(imageStream);
imgIcon.setImageDrawable(roundedImage);
}
else {
roundedImage = BitmapFactory.decodeResource(getResources(),R.mipmap.author);
imgIcon.setImageDrawable(roundedImage);
}
在这段代码中,我们省略了使用 RoundImage 类的行。
推荐阅读
- login - 用户登录失败 | Drupal 8
- ios - Xcode Storyboard:无法将视图添加到 ViewController
- mysql - 在日期时间字段中存储空时间?
- java - 如果应用程序中存在的 sql 花费了超过某个时间段,我该如何设置它的超时时间?
- mysql - MySql JOIN 性能随 group by 下降
- json - 将多个列表的字符串拆分为多个 json 对象
- javascript - 在 JavaScript ES6 类中无限期调用“set function()”
- docusignapi - 如何通过 DocuSign REST API 从模板中获取 emailBlurb
- php - $ entity-> getId(): Error: GetId() on array
- performance - 基于 netty 的 rpcProxy 性能不佳