android - 使用 Canvas 在android中扭曲圆圈

标签 android canvas bitmap geometry

Paint p = new Paint();
    p.setAntiAlias(true);
    p.setColor(Color.DKGRAY);
    int y=getWindowManager().getDefaultDisplay().getWidth();
    Config conf = Bitmap.Config.RGB_565;
    Bitmap bmp =Bitmap.createBitmap(y,y,conf);
    Canvas c = new Canvas(bmp);
    c.drawCircle(y/2 ,y/2, y/3, p);
    iv.setBackgroundDrawable(new BitmapDrawable(bmp));

通过这段代码,我确实得到了圆圈,它看起来像:-

现在的问题是它看起来不像一个真正的圆,它看起来像一个椭圆形..

那我该怎么办??

提前致谢,....

最佳答案

iv.setBackgroundDrawable(new BitmapDrawable(bmp));

使用setImageBitmap() ,而不是 setBackgroundDrawable(),并将 setScaleType() 改为 FIT_CENTER

关于android - 使用 Canvas 在android中扭曲圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11471445/

相关文章:

javascript - Javascript!==给出的结果与===相反

java - 使用带位图的 Universal ImageLoader 显示图像

android - 应用程序 :stackFromEnd for RecyclerView is not working in xml?

android - 无法在 Android 中设置视频录制的最短持续时间

javascript - Canvas - 如何绘制以光源为中心的点的网格?

canvas - 有没有办法在 rxjs 中处理带有可观察值的 canvas.toBlob ?

java - 如何使我的自定义位图按钮字段使用透明背景?

android - 在 Canvas 上绘制对象/图像

android - 如何使用 Intent.ACTION_SEND 将图像发送到 Android 上的 Facebook Messenger?

android - 使用 recreate() 方法和 startActivity(getIntent()) 重新创建 Activity 的区别