推荐安卓开发神器(里面有各种UI特效和android代码库实例)

/** * 1.放大缩小图片 *  * @param bitmap * @param w * @param h * @return */public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h) {int width = bitmap.getWidth();int height = bitmap.getHeight();Matrix matrix = new Matrix();float scaleWidht = ((float) w / width);float scaleHeight = ((float) h / height);matrix.postScale(scaleWidht, scaleHeight);Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height,matrix, true);return newbmp;}/** * 2.获得圆角图片的方法 *  * @param bitmap * @param roundPx * @return */public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, float roundPx) {Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);Canvas canvas = new Canvas(output);final int color = 0xff424242;final Paint paint = new Paint();final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());final RectF rectF = new RectF(rect);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, rect, rect, paint);return output;}/** * 3.获得带倒影的图片方法 *  * @param bitmap * @return */public static Bitmap createReflectionImageWithOrigin(Bitmap bitmap) {final int reflectionGap = 4;int width = bitmap.getWidth();int height = bitmap.getHeight();Matrix matrix = new Matrix();matrix.preScale(1, -1);Bitmap reflectionImage = Bitmap.createBitmap(bitmap, 0, height / 2,width, height / 2, matrix, false);Bitmap bitmapWithReflection = Bitmap.createBitmap(width,(height + height / 2), Config.ARGB_8888);Canvas canvas = new Canvas(bitmapWithReflection);canvas.drawBitmap(bitmap, 0, 0, null);Paint deafalutPaint = new Paint();canvas.drawRect(0, height, width, height + reflectionGap,deafalutPaint);canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);Paint paint = new Paint();LinearGradient shader = new LinearGradient(0, bitmap.getHeight(), 0,bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff,0x00ffffff, TileMode.CLAMP);paint.setShader(shader);// Set the Transfer mode to be porter duff and destination inpaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));// Draw a rectangle using the paint with our linear gradientcanvas.drawRect(0, height, width, bitmapWithReflection.getHeight()+ reflectionGap, paint);return bitmapWithReflection;}/** * 4.将Drawable转化为Bitmap *  * @param drawable * @return */public static Bitmap drawableToBitmap(Drawable drawable) {int width = drawable.getIntrinsicWidth();int height = drawable.getIntrinsicHeight();Bitmap bitmap = Bitmap.createBitmap(width, height, drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565);Canvas canvas = new Canvas(bitmap);drawable.setBounds(0, 0, width, height);drawable.draw(canvas);return bitmap;}

更多相关文章

  1. [Android] Android获取当前顶部Activity名方法历史版本汇总
  2. Android兼容性问题 -- SparseArray.clone()方法异常
  3. Android Studio:xxx is not an enclosing class 错误的解决方法
  4. 【Android】Android 发送短信和打电话的方法
  5. Android中AutoCompleteTextView的特殊使用方法
  6. Android 解决fragment replace方法低效的问题
  7. Android 单击图片切换效果
  8. Android中WARNING: Application does not specify an API level

随机推荐

  1. [置顶] Android(安卓)菜单:OptionMenu 介
  2. android studio生成jar包
  3. android中Acticity之间的跳转
  4. Android 定时重启Android系统源(手机root
  5. Application has stopped unexpectedly.
  6. Android中Json应用实例介绍
  7. android camera(4)
  8. 我的词典:即粘即用二
  9. Android(安卓)camera拍照分辨率
  10. Android(安卓)选择城市,选择联系人,自定义