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; // } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories