代码之家  ›  专栏  ›  技术社区  ›  Mahmoud Manson

如何在android studio中禁用圆形图像

  •  0
  • Mahmoud Manson  · 技术社区  · 6 年前

    我为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);
    
        }
    

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

    2 回复  |  直到 6 年前
        1
  •  0
  •   TennyApps    6 年前

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

    canvas.drawOval(mRectF, mPaint);
    

    canvas.drawRect(mRectF, mPaint);
    
        2
  •  0
  •   Hossein Seifi    6 年前

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

    if (isExist != false){
            roundedImage  = BitmapFactory.decodeStream(imageStream);
            imgIcon.setImageDrawable(roundedImage);
        }
        else {
            roundedImage = BitmapFactory.decodeResource(getResources(),R.mipmap.author);
            imgIcon.setImageDrawable(roundedImage);
        }
    

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