android – 在现有图像上绘制一个圆圈

我正试图在放置为res / drawable / schoolboard.png的图像上绘制一个圆圈.图像填充活动背景.以下不起作用:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.schoolboard);
    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setColor(Color.BLUE);

    Canvas canvas = new Canvas(bitmap);
    canvas.drawCircle(60,50,25,paint);

    ImageView imageView = (ImageView)findViewById(R.drawable.schoolboard);
    imageView.setAdjustViewBounds(true);
    imageView.setimageBitmap(bitmap);

任何帮助将受到高度赞赏.谢谢.

解决方法

您的代码中存在一些错误
首先,你不能在findViewById中为drawable提供参考ID
所以我觉得你的意思是那样的
ImageView imageView = (ImageView)findViewById(R.id.schoolboard_image_view);

schoolboard_image_view是xml布局中的图像ID(检查你的布局是否有正确的id)

BitmapFactory.Options myOptions = new BitmapFactory.Options();
    myOptions.inDither = true;
    myOptions.inScaled = false;
    myOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;// important
    myOptions.inPurgeable = true;

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.schoolboard,myOptions);
    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setColor(Color.BLUE);


    Bitmap workingBitmap = Bitmap.createBitmap(bitmap);
    Bitmap mutableBitmap = workingBitmap.copy(Bitmap.Config.ARGB_8888,true);


    Canvas canvas = new Canvas(mutableBitmap);
    canvas.drawCircle(60,paint);

    ImageView imageView = (ImageView)findViewById(R.id.schoolboard_image_view);
    imageView.setAdjustViewBounds(true);
    imageView.setimageBitmap(mutableBitmap);

请确保使用正确的图片ID:

ImageView imageView =(ImageView)findViewById(R.id.schoolboard_image_view);

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...