您的位置:首页 > 移动开发 > Android开发

android将图片转换为圆形图片

2016-07-20 00:25 387 查看
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.R.integer;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Environment;
import android.util.Log;
import android.widget.Toast;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.datatype.BmobFile;
import cn.bmob.v3.listener.DeleteListener;
import cn.bmob.v3.listener.FindCallback;
import cn.bmob.v3.listener.SaveListener;
import cn.bmob.v3.listener.UpdateListener;
import cn.bmob.v3.listener.UploadBatchListener;
import cn.bmob.v3.listener.UploadFileListener;
import com.example.elephant.AddNewLiaotieActivity;
import com.example.elephant.db.AccountImg;
import com.example.elephant.db.LiaoTie;
import com.example.elephant.db.UploadGridPics;

/**
* 将图片转换为圆形图片
*
*/
// 处理类
public class ImageHelper {
static OpenSharePrefrenceHelper openSharePrefrenceHelper;
static int k=0;
/**
* 转换图片成圆形
*
* @param bitmap
*            传入Bitmap对象
* @return
*/
public static Bitmap toRoundBitmap(Bitmap bitmap) {
if (bitmap==null) {

}else {
int width = bitmap.getWidth();
int height = bitmap.getHeight();
float roundPx;
float left, top, right, bottom, dst_left, dst_top, dst_right, dst_bottom;
if (width <= height) {
roundPx = width / 2;
top = 0;
bottom = width;
left = 0;
right = width;
height = width;
dst_left = 0;
dst_top = 0;
dst_right = width;
dst_bottom = width;
} else {
roundPx = height / 2;
float clip = (width - height) / 2;
left = clip;
right = width - clip;
top = 0;
bottom = height;
width = height;
dst_left = 0;
dst_top = 0;
dst_right = height;
dst_bottom = height;
}

Bitmap output = Bitmap.createBitmap(width, height, Config.ARGB_8888);
Canvas canvas = new Canvas(output);

final int color = 0xff424242;
final Paint paint = new Paint();
final Rect src = new Rect((int) left, (int) top, (int) right,
(int) bottom);
final Rect dst = new Rect((int) dst_left, (int) dst_top,
(int) dst_right, (int) dst_bottom);
final RectF rectF = new RectF(dst);

paint.setAntiAlias(true);

canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);

paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, src, dst, paint);
return output;
}
return null;

}

// 下载图片转为bitmap
//	public static Bitmap getHttpBitmap(String url) {
//		URL u = null;
//		Bitmap bmp = null;
//		try {
//			u = new URL(url);
//
//		} catch (Exception e) {
//			// TODO: handle exception
//		}
//		try {
//			HttpURLConnection conn = (HttpURLConnection) u.openConnection();
//			conn.setConnectTimeout(0);
//			conn.setDoInput(true);
//			conn.connect();
//			InputStream ins = conn.getInputStream();
//			bmp = BitmapFactory.decodeStream(ins);
//			ins.close();
//		} catch (Exception e) {
//			// TODO: handle exception
//		}
//		return bmp;
//	}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 图片