Android 方形图片编程圆形之后,太小了

从本地相册获取的一个图片,进行正方形裁剪后,在用遮罩方式变成圆形,怎么样调整生成圆形之后的圆形图片的大小。

下面是主要代码

/**
* 裁剪图片方法实现
*
* @param uri
/
public void startPhotoZoom(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/
");
// 设置裁剪
intent.putExtra("crop", "true");
// aspectX aspectY 是宽高的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// outputX outputY 是裁剪图片宽高
intent.putExtra("outputX", layoutPhoto.getWidth());
intent.putExtra("outputY", layoutPhoto.getHeight());
intent.putExtra("return-data", true);
startActivityForResult(intent, RESULT_REQUEST_CODE);
}

/**
 * 保存裁剪之后的图片数据
 * 
 * @param picdata
 */
private void getImageToView(Intent data) {
    Bundle extras = data.getExtras();
    if (extras != null) {
        Bitmap photo = extras.getParcelable("data");
        Bitmap bitPhoto = createCirclImage(photo);
        Drawable drawable = new BitmapDrawable(this.getResources(), bitPhoto);
        iv_nikePhoto.setImageDrawable(drawable);

    }
}

/**
 * 绘制圆形图片
 * 
 * @return
 */
private Bitmap createCirclImage(Bitmap bitmap) {
    // // 绘制画笔
    int width = layoutPhoto.getWidth();
    int height = layoutPhoto.getHeight();
    // 绘制圆角矩形
    Bitmap roundBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(roundBitmap);
    int color = 0xff424242;
    Paint paint = new Paint();
    // 设置圆形半径
    int radius;
    if (bitmap.getWidth() > bitmap.getHeight()) {
        radius = bitmap.getHeight() / 2;
    } else {
        radius = bitmap.getWidth() / 2;
    }
    // 绘制圆形
    paint.setAntiAlias(true);
    canvas.drawARGB(0, 0, 0, 0);
    paint.setColor(color);
    canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2, radius, paint);
    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
    canvas.drawBitmap(bitmap, 0, 0, paint);
    return roundBitmap;

}

7个回答

public static Bitmap cut2Circular(Bitmap source, boolean recycleSource) {

    int photoWidth = layoutPhoto.getWidth() - DisplayUtil.dip2px(mActivity, 10);
    int photoHeight = layoutPhoto.getHeight() - DisplayUtil.dip2px(mActivity, 10);
    int width = source.getWidth();
    int height = source.getHeight();
    float scaleWidth = (float) photoWidth / (float) width;
    float scaleHeight = (float) photoHeight / (float) height;
    Matrix mx = new Matrix();
    mx.postScale(scaleWidth, scaleHeight);
    source = Bitmap.createBitmap(source, 0, 0, width, height, mx, true);
    int diameter = Math.min(photoWidth, photoHeight);
    Paint paint = new Paint();
    paint.setAntiAlias(true);
    Bitmap result = Bitmap.createBitmap(diameter, diameter, Bitmap.Config.ARGB_8888);
    if (result != null) {
        Canvas canvas = new Canvas(result);
        // canvas.drawCircle(diameter / 2, diameter / 2, diameter / 2,
        // paint);
        canvas.drawCircle(diameter / 2, diameter / 2, diameter / 2, paint);
        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        // canvas.drawBitmap(source, (diameter - photoWidth) / 2, (diameter
        // - photoHeight) / 2, paint);
        canvas.drawBitmap(source, (diameter - photoWidth) / 2, (diameter - photoHeight) / 2, paint);
        if (recycleSource) {
            source.recycle();
            source = null;
        }
    } else {
        result = source;
    }
    return result;

首先要让圆形的直径等于正方形的边长

可以看看你的效果图 和 设计图不

图片说明这是效果图

图片说明

你可以去看看 CircleImageView 开源的 那个写的很完善,包括相片的选取

看能不能给存放图片的地方的布局块设置一下参数为内容自适应。
//1设置参数
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);

//2给图片设置参数
imageview.setLayoutParams(params);
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
方形图片转为圆形图片
在线工具:http://www.quickpicturetools.com/en/rounded_corners/打开 在线工具:http://www.quickpicturetools.com/en/rounded_corners/。点击“Load an image from your computer.”添加你要处理的图片。点击图中1处修改为50,即全圆,否则为矩形圆角。点击2处修改为png,...
图片圆形和有圆角的方形
图片圆形和有圆角的方形
如何将方形图片磨成圆形图片
如何将方形图片磨成圆形图片在开发中经常会有一些需求,比如显示头像,显示一些特殊的需求,将图片显示成圆角或者圆形或者其他的一些形状。但是往往我们手上的图片或者从服务器 获取到的图片都是方形的。这时候就需要我们自己进行处理,将图片处理成所需要的形状。使用Xfermode 两图相交方式通过查找资料通过查找资料发现android中可以设置画笔的Xfermode即相交模式,从而设置两张图相交之后的显示方式,具
iOS-方形图片设置成圆形图片
创建一个方形的button,添加方形的背景图片,设置显示为圆形     self.view.backgroundColor=[UIColor orangeColor];     button=[UIButton buttonWithType:UIButtonTypeCustom];     button.frame=CGRectMake(0, 0, 200, 200
方形图片转换成圆形图片(涉及微信用户头像方形转换成圆形)
在一个性格测试题中最后生成一个带有用户头像的海报,中有用户的头像,在用户授权的时候拿到用户头像的urlBufferedImage resultImg = null; String url=richService.findUser(id).getHeadImg(); try { BufferedImage buffImg1 = ImageIO...
画圆形和方形
小学信息技术 3年级 画圆形和方形 教学设计
方形图片使用QLabel显示成圆形
方形图片使用QLabel显示成圆形#ifndef MASKLABEL_H #define MASKLABEL_H#include <QLabel>class MaskLabel : public QLabel { public: MaskLabel(QWidget *parent=0);protected: void paintEvent(QPaintEvent *); };#end
个人头像,圆形方形
可拍照,选择相册上传头像上传头像分为圆角功能截图,方形头像。
绘制圆形/方形区域
//贝塞尔画圆     UIBezierPath * path= [UIBezierPath bezierPathWithRect:CGRectMake(0, 64, ScreenWidth, ScreenHeight)];      CAShapeLayer *layer = [CAShapeLayer layer];     if(clipType ==  // 圆形 /
Android项目中的BitMapUtil 将图片/bitmap方形转变成圆形
public class BitMapUtil { private static final Options OPTIONS_GET_SIZE = new Options (); private static final Options OPTIONS_DECODE = new Options (); private static final byte[]
Android中将方形图片截取成圆形的两种实现方式
以下两种方法均有不足,仅供参考第一种实现方式是通过设置画笔的渲染方式对图片进行处理:首先要了解几种渲染方式 1.BitmapShader(图像渲染)   BitmapShader的作用是使用一张位图作为纹理来对某一区域进行填充。可以想象成在一块区域内铺瓷砖,只是这里的瓷砖是一张张位图而已。    2.LinearGradient(线性渲染)   LinearGradient的作用是实现
picture 太小了
vb中画图一般是用picture中化吗?rn但是picture的宽度有限制,最大为2.45745e5,作成两个picture,滑动条,只能在2.45745e5这个范围内移动,看国一些软件,例如画pcb图用的protel99,是用delphi做的,好象图能放大很大倍数,滑动条也能滑很大,rn不知道在vb中能不能实现
安卓方形图片遮罩处理成圆形图片
方形图片通过遮罩处理,显示成圆形的图片。
iOS方形图片裁剪成圆形
前言今天遇到了一个问题,产品以前设计了一个页面,里边的用户头像是圆形的。当时做的时候也没注意,谁知道圆形不是规则的圆形,而是有些地方有些小猫爪印在圆形的外面。然后就考虑怎么来实现这个需求,我这里有2种思路来处理 把圆形切成一个图层,然后外面的爪子也当做一个图层。也就是说这个地方,本来可以用一个UIImageView,现在要用2个。摆放位置之类的到没有什么问题,主要有2点需要考虑 使用SDWebIm
按钮图标太小了
我弄个check box改为push like做的能按下,弹起按钮rn我给按钮添加背景图标,为什么图标就只在中间,而且很小,不能像CButtonST做的能覆盖整个按钮rnvoid CTestDlg::OnBnClickedCheck1()rnrn u[0]=!u[0]; rn if (u[0])rn rn HICON m_hicn1= AfxGetApp()->LoadIcon( IDI_ICON1);rn m_check1.SetIcon(m_hicn1);rn rn elsern rn HICON m_hicn1= AfxGetApp()->LoadIcon( IDI_ICON2);rn m_check1.SetIcon(m_hicn1);rn rn // TODO: 在此添加控件通知处理程序代码rnrnrnCButton m_check1;
phoenix 的屏幕太小了
cd  /var/gs/phoenix bin/psql.py 172.22.10.1 /tmp/caojian/test.sql vim  test.sql select * from  "ADTRACK:USER_PROFILE"; 这样能显示全部的数据。
声音太小了,怎么办??????
我的计算机无论是接音箱还是耳麦,声音都太小了rn是不是声卡功率太低啦?rn如果是怎么解决????rn如是不是,是什么问题,怎么解决????rn谢啦!!!!
声音太小了,怎么办?
无论是音箱,还是耳脉,声音老是很小rn是不是声卡功率太小了?rn怎么样才能把声音变大大点??rn谢谢指教!
如何把方形图片截取成圆形图片
如题,谢谢
Android 自定义圆形图片
Android自定义圆形图片,可设置最多两个的外边框。包括从网络获取图片显示。 解决图片锯齿问题。 解决图片变形问题 有需要的可以下载,效果图在 http://blog.csdn.net/wangqing830414/article/details/39612421
Android圆形图片
Android圆形图片处理工具类jar包,导入项目可直接使用
Android 图片圆弧 和 圆形
Android 图片圆弧 和 圆形
android显示圆形图片
[code=&quot;java&quot;] package com.*.widget; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint...
Android 绘制圆形图片
经常在项目中,会遇到使用圆形头像。然而图片往往不是圆形的,我们需要对图片进行处理,以达到圆形图片的效果。这里,我总结了一下常用的android圆形图片的绘制的方法。主要有以下几种方式:1.画布裁剪;2.Xfermode进行重叠;3使用着色器shader。下面我们将一个一个进行描述:     第一种,画布裁剪:通过创建空白的Bitmap生成canvas画布,然后将画布进行裁剪成圆形,最后在画布上进
Android自定义组件之圆形图片
最近在写一个仿新浪微博的app,发现有部分图片是圆的,就想知道怎么做。 就找了个自定义的,下面给大家看下demo package com.erma.myapp_weibo.UI.tool; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap
Android 圆形图片代码
Android处理圆形图片的代码。
android圆形图片效果
前言 App展示的图片通常都是长方形,这种展示方式非常单调而且古板。图像的直角让人感觉比较尖锐不是那么的友好,因而一些用户头像通常都要求展示带有圆角效果,相对来说带圆角的图片整体感觉更加柔和。圆角效果可以让设计切图,但是这种方式工作量比较大,很浪费设计的工作效率,在项目中往往都是前端实现。现在来讨论一下在android前端实现圆角效果实现方式。 PorterDuff效果实现 Porter...
android 圆形图片网络请求
依赖 implementation ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’ 图片框架 public class app extends Application { @Override public void onCreate() { super.onCreate(); ...
android圆形图片控件
android圆形图片控件,在项目开发中,我们经常需要用到圆形图片效果,典型案例是用户头像的显示。
android 自定义控件 圆形图片
所谓自定义控件(或称组件)也就是编写自己的控件类型,而非Android中提供的标准的控件,如TextView,等等.不过自定义的控件一般也都是从标准控件继承来的,或者是多种控件组合,或者是对标准控件的属性进行改变而得到的自己满意的控件. 自定义控件可能会有很多种方法,这里只介绍圆形图片的控件   获取圆形图片工具类(识别各种尺寸图片,自带图片裁剪功能,选取图片的最大正方形画圆
Android自定义圆形图片
public class RoundBitmapUtils { public static Bitmap getBitmap(Bitmap bitmap){ //依据原有图片,重新创建一张新的图片,图片格式发生变化:ARGB-444 Bitmap b = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeig
android 圆形图片的显示
1.引用 compile 'de.hdodenhof:circleimageview:1.3.0' 2.xml的使用,别的跟ImageView一样 de.hdodenhof.circleimageview.CircleImageView android:id="@+id/my_shoucang" android:layout_width="35dp"
Android 实现圆形图片
曾经碰到一个印度朋友写圆形图片的时候用的别人的一个jar包,而且jar包内存很大我感觉不是很可取 因为用Android PorterDuff.Mode ,如果有同学对PorterDuff.Mode 不是 很了解 请点击大手子博客就可以 很简单的实现 授人以鱼不如授人以渔,代码是最好的老师下面上代码:package com.yongjia.yishu.view; import android.con
android圆形图片
android开源系列:CircleImageView自定义圆形控件的使用
Android 圆形图片类
Android 圆形图片类
这个论坛的字体太小了
看着太费眼了,大家觉得呢?
新版cxGrid滚动条太小了
新版cxGrid滚动条太小了,在哪可以设置成和设计的时候一样大小啊rn[img=https://img-bbs.csdn.net/upload/201807/13/1531482772_652874.jpg][/img]
Delphi XE10 MainMenu太小了。。。
不想使用第三方控件,使用自带的MainMenu,添加的菜单在现在的大屏电脑上显的太渺小了。。。rnrn有什么方法将菜单栏的高度和字体设置一下?以前有自绘的事件,现在新版本的去掉了。。不知道如何整了。
打印预览太小了怎么搞
打印预览。rnrn怎么个转换啊?rn看了很多文章,不知道他想干嘛?rnrn在预览里看起来很小?rnrn谁能给我说说。谢谢!rnrn是不是把映射模式换下?rn那么所以的点是不是都要算过?rnrn就是不知道转换的规则?就是怎么才能转换?rn坐标系和什么转换的我看过了。rnrn就是实际点,在view中画的矩形,0,0,800,400。 rn怎么才能到打印预览上正常点?能写点代码吗?rnrn说说的我看了很多了
QML 头像方形图片处理为圆形图片方法
import QtGraphicalEffects 1.0需要引入的包 Item{ width: 300 height: 300 Image{ id: imageView source: "test.png"
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件