android 从服务器请求url并做圆角处理
来源:互联网 发布:淘宝无法投诉卖家 编辑:程序博客网 时间:2024/06/05 05:08
//服务器给个url在客户端请求并且进行圆角处理
//用的xutils框架get请求
private void get_shifu_img() {
String str_url="";
String t=String.valueOf(System.currentTimeMillis()).substring(0,10);
str_url=Config.STR_SERVICE_URL + "/get_master_img/client_type/android/t/"+t+"/u/"+u+"/q/"+Common.toSign(u, p, t);
HttpUtils http_get = new HttpUtils();
http_get.send(HttpMethod.GET, str_url, new RequestCallBack<String>() {
@Override
public void onLoading(long total, long current, boolean isUploading) {
}
@Override
public void onFailure(HttpException arg0, String arg1) {
Toast.makeText(MapActivity.this, "加载失败,请检查网络设置", Toast.LENGTH_SHORT).show();
}
@SuppressLint("NewApi")
@Override
public void onSuccess(ResponseInfo<String> arg0) {
try {
JSONObject jo = Common.toJSONObject(arg0.result);
img_me= jo.getString("info");
// bitmapUtils.display(iv_shifu_touxiang,Config.STR_SERVICE_URL+img_me);如果不进行圆角处理,在这里就直接可以用display了
getBitmap(Config.STR_SERVICE_URL+img_me); //这个方法把url网址转变成bitmap图片
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
void getBitmap(final String path){
new Thread(){
@Override
public void run() {
URL url=null;
try {
url = new URL(path);
} catch (MalformedURLException e) {
e.printStackTrace();
}
if(url!=null){
try {
HttpURLConnection conn;
conn = (HttpURLConnection)url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
if(conn.getResponseCode() == 200){
InputStream inputStream = conn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);//把流转换成bitmap
Message msg = new Message(); //不能放在主线程之中以免阻塞
msg.what = 110;
msg.obj = bitmap;
handler.sendMessage(msg);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
}.start();
}
new 一个handler接收下
case 110:
bit=(Bitmap) msg.obj;
Bitmap output=toRoundBitmap(bit);//转换图片为圆形
iv_shifu_touxiang.setImageBitmap(output);
break;
public Bitmap toRoundBitmap(Bitmap bitmap) {
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;
left = 0;
top = 0;
right = width;
bottom = 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, Bitmap.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); // 填充整个Canvas
paint.setColor(color);
// 以下有两种方法画圆,drawRounRect和drawCircle
// canvas.drawRoundRect(rectF, roundPx, roundPx, paint);// 画圆角矩形,第一个参数为图形显示区域,第二个参数和第三个参数分别是水平圆角半径和垂直圆角半径。
canvas.drawCircle(roundPx, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));// 设置两张图片相交时的模式,参考http://trylovecatch.iteye.com/blog/1189452
canvas.drawBitmap(bitmap, src, dst, paint); //以Mode.SRC_IN模式合并bitmap和已经draw了的Circle
return output;
}
- android 从服务器请求url并做圆角处理
- 【nodejs】服务器处理url请求并返回json数据
- jQuery向服务器请求数据并处理
- 从服务器上请求json数据,并解析json数据
- Android中WebView中拦截所有请求并替换URL
- Android初识-通过URL地址请求并返回JSON数据
- Android从服务器检测更新并下载
- java 请求url并解析
- url请求数据并解析
- 从服务器请求数据
- Android中WebView中拦截所有请求并替换URL(支持AJAX的post请求类型)
- Android向Web服务器发送Post请求并返回数据
- Android向Web服务器发送Post请求并返回数据
- Android从服务器获取图片并设置圆形头像
- android 从服务器下载图片,并保存到本地
- echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端
- ajax从服务器请求事件
- URL请求并解析JSON数据
- The method iterator() is ambiguous for the type KafkaStream<byte[],byte[]>
- CF 584E(Anton and Ira-构造+贪心)
- 快速基于echarts的大数据可视化
- iOS--webView
- 去掉最高最低分求均值问题
- android 从服务器请求url并做圆角处理
- C#.NET实现网页自动登录的方法
- 【解决】hive与hbase表结合级联查询的问题
- Route (DOS设置路由表)
- 快速查询hive数据仓库表中的总条数
- C#解析JSON实例
- “error C3867: “XXX”: 函数调用缺少参数列表;请使用“&XXX”创建指向成员的指针”的错误
- 什么是死锁?其条件是什么?怎样避免死锁?
- 【解决】hive动态增加partitions不能超过100的问题