我有一个带有联系人图像和姓名或电话号码的ListVIEw.现在,我想在此联系人图像的角上画上圆角.
public VIEw getVIEw(final int position, VIEw convertVIEw, VIEwGroup parent) { VIEw row = convertVIEw; UserHolder holder = null; Log.d("main", "pos:" + "" + position); if (row == null) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); row = inflater.inflate(layoutResourceID, parent, false); holder = new UserHolder(); holder.name = (TextVIEw) row.findVIEwByID(R.ID.name); holder.Number = (TextVIEw) row.findVIEwByID(R.ID.number); holder.img=(ImageVIEw) row.findVIEwByID(R.ID.image); Typeface face=Typeface.createFromAsset(context.getAssets(),"helve.ttf"); holder.name.setTypeface(face); //holder.Number.setTypeface(face); //bit = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); // //holder.img.setimageBitmap(getRoundedCornerBitmap(bit, 40)); row.setTag(holder); } else { holder = (UserHolder) row.getTag(); } User user = data.get(position); holder.name.setText(user.getname()); holder.img.setimageBitmap(user.getbi()); //holder.img.setimageBitmap(roundCornerImage(BitmapFactory.decodeResource(user.getbi(), R.drawable.ic_launcher),60)); holder.Number.setText(user.getNumber()); // Give Different Back Ground To List VIEw--------------------------------------------- if ((position % 2) == 0) { row.setBackgroundResource(R.drawable.List_dark); } else { row.setBackgroundResource(R.drawable.List_light); } Log.d("main", "pos:" + "" + position); return row;}static class UserHolder { TextVIEw name,Number; ImageVIEw img;}
如何在此图像上添加圆角?我有点困惑,我必须做什么样的改变.
解决方法:
嗨,请使用此自定义imagevIEw
public class RoundedImageVIEw extends ImageVIEw {public RoundedImageVIEw(Context context) { super(context); // Todo auto-generated constructor stub}public RoundedImageVIEw(Context context, AttributeSet attrs) { super(context, attrs);}@Suppresslint("Instantiatable")public RoundedImageVIEw(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle);}@OverrIDeprotected voID onDraw(Canvas canvas) { Drawable drawable = getDrawable(); if (drawable == null) { return; } if (getWIDth() == 0 || getHeight() == 0) { return; } Bitmap b = ((BitmapDrawable) drawable).getBitmap(); Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true); int w = getWIDth(), h = getHeight(); Bitmap roundBitmap = getCroppedBitmap(bitmap, w); canvas.drawBitmap(roundBitmap, 0, 0, null);}public static Bitmap getCroppedBitmap(Bitmap bmp, int radius) { Bitmap sbmp; if (bmp.getWIDth() != radius || bmp.getHeight() != radius) sbmp = Bitmap.createScaledBitmap(bmp, radius, radius, false); else sbmp = bmp; Bitmap output = Bitmap.createBitmap(sbmp.getWIDth(), sbmp.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xffa19774; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, sbmp.getWIDth(), sbmp.getHeight()); paint.setAntiAlias(true); paint.setFilterBitmap(true); paint.setDither(true); canvas.drawARGB(0, 0, 0, 0); paint.setcolor(color.parsecolor("#BAB399")); canvas.drawCircle(sbmp.getWIDth() / 2 + 0.7f, sbmp.getHeight() / 2 + 0.7f, sbmp.getWIDth() / 2 + 0.1f, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(sbmp, rect, rect, paint); return output;}
}
总结以上是内存溢出为你收集整理的android-将带有圆角的图像设置为ImageView全部内容,希望文章能够帮你解决android-将带有圆角的图像设置为ImageView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)