相关疑难解决方法(0)

如何制作带圆角的ImageView?

在Android中,默认情况下ImageView是一个矩形.如何在ImageView中将其设置为圆角矩形(将我的Bitmap的所有4个角切掉为圆角矩形)?

android rounded-corners imageview android-image android-imageview

537
推荐指数
27
解决办法
42万
查看次数

如何在不创建新位图的情况下获得圆形,中心裁剪的imageView?

注意:我知道有很多关于这个的问题和存储库,但似乎没有一个适合我试图实现的目标.

背景

给定任何宽高比的位图,我希望将其设置为ImageView的内容(仅使用drawable,而不扩展ImageView),以便内容将被中心裁剪,但仍为圆形.

所有这一切,内存使用量最少,因为有时图像可能非常大.我不想为此创建一个全新的Bitmap.内容已经存在......

问题

我发现的所有解决方案都没有我写过的东西:有些不是中心裁剪,有些人认为图像是方形的,有些是从给定的位图创建一个新的位图......

我试过的

除了尝试各种存储库之外,我已经尝试过本教程,并尝试针对非方形宽高比进行修复,但我失败了.

这是它的代码,以防网站关闭:

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);
      } …
Run Code Online (Sandbox Code Playgroud)

geometry android bitmap aspect-ratio android-imageview

12
推荐指数
2
解决办法
2521
查看次数