Android QuickContactBadge with letters like Android Lollipop

守給你的承諾、 提交于 2019-11-30 15:05:20

I use a function to generate these images.

public static Bitmap generateCircleBitmap(Context context, int circleColor, float diameterDP, String text){     final int textColor = 0xffffffff;      DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();     float diameterPixels = diameterDP * (metrics.densityDpi / 160f);     float radiusPixels = diameterPixels/2;      // Create the bitmap     Bitmap output = Bitmap.createBitmap((int) diameterPixels, (int) diameterPixels,             Bitmap.Config.ARGB_8888);      // Create the canvas to draw on     Canvas canvas = new Canvas(output);     canvas.drawARGB(0, 0, 0, 0);      // Draw the circle     final Paint paintC = new Paint();     paintC.setAntiAlias(true);     paintC.setColor(circleColor);     canvas.drawCircle(radiusPixels, radiusPixels, radiusPixels, paintC);      // Draw the text     if (text != null && text.length() > 0) {         final Paint paintT = new Paint();         paintT.setColor(textColor);         paintT.setAntiAlias(true);         paintT.setTextSize(radiusPixels * 2);         Typeface typeFace = Typeface.createFromAsset(context.getAssets(),"fonts/Roboto-Thin.ttf");         paintT.setTypeface(typeFace);         final Rect textBounds = new Rect();         paintT.getTextBounds(text, 0, text.length(), textBounds);         canvas.drawText(text, radiusPixels - textBounds.exactCenterX(), radiusPixels - textBounds.exactCenterY(), paintT);     }      return output; } 

I pass the contact's name into the following getMaterialColor function to select a color.

private static List<Integer> materialColors = Arrays.asList(         0xffe57373,         0xfff06292,         0xffba68c8,         0xff9575cd,         0xff7986cb,         0xff64b5f6,         0xff4fc3f7,         0xff4dd0e1,         0xff4db6ac,         0xff81c784,         0xffaed581,         0xffff8a65,         0xffd4e157,         0xffffd54f,         0xffffb74d,         0xffa1887f,         0xff90a4ae );  public static int getMaterialColor(Object key) {     return material.get(Math.abs(key.hashCode()) % materialColors.size()); } 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!