首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在android studio中禁用圆角图像

如何在android studio中禁用圆角图像
EN

Stack Overflow用户
提问于 2018-07-10 03:02:06
回答 2查看 57关注 0票数 0

我为android应用程序买了一个模板,它有列表视图和另一个带有圆角图像的文件,我想禁用它

这是roundimage.java文件

代码语言:javascript
复制
    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;
    }

}

这是我要禁用舍入的文件中的一部分

代码语言:javascript
复制
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);

    }

如何禁用图像的舍入或控制其边角将其更改为零

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-10 04:16:14

如果您想要矩形图像,可以编辑

代码语言:javascript
复制
canvas.drawOval(mRectF, mPaint);

代码语言:javascript
复制
canvas.drawRect(mRectF, mPaint);
票数 0
EN

Stack Overflow用户

发布于 2018-07-10 04:02:00

请测试此代码,而不是您的代码:

代码语言:javascript
复制
if (isExist != false){
        roundedImage  = BitmapFactory.decodeStream(imageStream);
        imgIcon.setImageDrawable(roundedImage);
    }
    else {
        roundedImage = BitmapFactory.decodeResource(getResources(),R.mipmap.author);
        imgIcon.setImageDrawable(roundedImage);
    }

在这段代码中,我们省略了使用RoundImage类的代码行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51252400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档