圆润的边角ImageView的 - 机器人 [英] Rounded corner ImageView - Android

查看:133
本文介绍了圆润的边角ImageView的 - 机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试创建的ImageView圆角corners.i搜查,发现XML code

 < XML版本=1.0编码=UTF-8&GT?;
 

  [固体机器人:颜色=#00FFFFFF/>

<填充
    机器人:底部=6DP
    机器人:左=6DP
    机器人:右=6DP
    机器人:顶部=6DP/>

<边角机器人:半径=12dp/>

<中风
    机器人:宽=6DP
    机器人:颜色=#FFFFFFFF/>
 

这是我的ImageView XML code

 < ImageView的
                机器人:ID =@ + ID / slidemenuuserimage
                机器人:layout_width =90dp
                机器人:layout_height =90dp
                机器人:layout_alignParentBottom =真
                机器人:layout_alignParentLeft =真
                机器人:layout_marginBottom =16DP
                机器人:layout_marginLeft =14dp
                机器人:背景=@可绘制/帧/>
 

我有一个问题。当我添加背景图片编程我收到divirent结果。

  slidemenuuserimage =(ImageView的)findViewById(R.id.slidemenuuserimage);
    slidemenuuserimage.setBackgroundResource(R.drawable.myuserimg);
 

这是我的结果

我怎么可以添加填充向左或向右programmatically.in我的选择,这是一个我的问题 如果有人知道的解决方案,请帮助我。

解决方案

您也可以做到这一点编程

 公共位图roundCornerImage(位图生,浮圆){
  INT宽度= raw.getWidth();
  INT高= raw.getHeight();
  位图结果= Bitmap.createBitmap(宽度,高度,Config.ARGB_8888);
  帆布油画=新的Canvas(结果);
  canvas.drawARGB(0,0,0,0);

  最终的涂料粉刷=新的油漆();
  paint.setAntiAlias​​(真正的);
  paint.setColor(Color.parseColor(#000000));

  最终矩形矩形=新的Rect(0,0,宽度,高度);
  最后RectF rectF =新RectF(RECT);

  canvas.drawRoundRect(rectF,圆,圆,油漆);

  paint.setXfermode(新PorterDuffXfermode(Mode.raw_IN));
  canvas.drawBitmap(生,矩形,矩形,油漆);

  返回结果;
 }
 

使用它像

<$p$p><$c$c>slidemenuuserimage.setImageBitmap(roundCornerImage(BitmapFactory.de$c$cResource(getResources(), R.drawable.yourImage),50)

I try to create imageview with rounded corners.i searched and found xml code

<?xml version="1.0" encoding="utf-8"?>

<solid android:color="#00ffffff" />

<padding
    android:bottom="6dp"
    android:left="6dp"
    android:right="6dp"
    android:top="6dp" />

<corners android:radius="12dp" />

<stroke
    android:width="6dp"
    android:color="#ffffffff" />

and this is a my imageview xml code

<ImageView
                android:id="@+id/slidemenuuserimage"
                android:layout_width="90dp"
                android:layout_height="90dp"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_marginBottom="16dp"
                android:layout_marginLeft="14dp"
                android:background="@drawable/frame" />

i have one problem.when i added background image programmatically i receive divirent result.

slidemenuuserimage=(ImageView)findViewById(R.id.slidemenuuserimage);
    slidemenuuserimage.setBackgroundResource(R.drawable.myuserimg);

this is a my result

how i can add padding left or right programmatically.in my option this is a my problem if anyone knows solution please help me

解决方案

You can also do this programatically

public Bitmap roundCornerImage(Bitmap raw, float round) {
  int width = raw.getWidth();
  int height = raw.getHeight();
  Bitmap result = Bitmap.createBitmap(width, height, Config.ARGB_8888);
  Canvas canvas = new Canvas(result);
  canvas.drawARGB(0, 0, 0, 0);

  final Paint paint = new Paint();
  paint.setAntiAlias(true);
  paint.setColor(Color.parseColor("#000000"));

  final Rect rect = new Rect(0, 0, width, height);
  final RectF rectF = new RectF(rect);

  canvas.drawRoundRect(rectF, round, round, paint);

  paint.setXfermode(new PorterDuffXfermode(Mode.raw_IN));
  canvas.drawBitmap(raw, rect, rect, paint);

  return result;
 }

Use it like

slidemenuuserimage.setImageBitmap(roundCornerImage(BitmapFactory.decodeResource(getResources(), R.drawable.yourImage),50)

这篇关于圆润的边角ImageView的 - 机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆