android.graphics.Bitmap Java Examples
The following examples show how to use
android.graphics.Bitmap.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: IconsManager.java From LaunchEnr with GNU General Public License v3.0 | 7 votes |
Bitmap getDefaultAppDrawable(String packageName) { Drawable drawable = null; try { drawable = mPackageManager.getApplicationIcon(mPackageManager.getApplicationInfo( packageName, 0)); } catch (NameNotFoundException e) { e.printStackTrace(); } if (drawable == null) { return null; } if (drawable instanceof BitmapDrawable) { return generateBitmap(((BitmapDrawable) drawable).getBitmap()); } return generateBitmap(Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888)); }
Example #2
Source File: PictureWallChoose.java From MainScreenShow with GNU General Public License v2.0 | 7 votes |
/** * 优得到的采样率对图片进行解析 * * @param filename * @param reqWidth * @return */ public static Bitmap decodeSampledBitmapFromFile(String filename, int reqWidth) { // First decode with inJustDecodeBounds=true to check dimensions final BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(filename, options); // Calculate inSampleSize options.inSampleSize = calculateInSampleSize(options, reqWidth); // Decode bitmap with inSampleSize set options.inJustDecodeBounds = false; return BitmapFactory.decodeFile(filename, options); }
Example #3
Source File: VMBitmap.java From VMLibrary with Apache License 2.0 | 6 votes |
/** * 等比例压缩到指定尺寸 默认到 1920 以下 * * @param path 图片路径 */ public static Bitmap compressByDimension(String path) { BitmapFactory.Options options = new BitmapFactory.Options(); // 开始读入图片,此时把options.inJustDecodeBounds 设回true了 options.inJustDecodeBounds = true; // 此时返回 bitmap 为空,并不会真正的加载图片 Bitmap bitmap = BitmapFactory.decodeFile(path, options); options.inJustDecodeBounds = false; int w = options.outWidth; int h = options.outHeight; // 缩放比,由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可 int be = getZoomScale(w, h, maxDimension); // 设置缩放比例 options.inSampleSize = be; // 重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了 bitmap = BitmapFactory.decodeFile(path, options); // 等比例压缩后再进行质量压缩 return bitmap; }
Example #4
Source File: ThumbnailAdapter.java From remoteyourcam-usb with Apache License 2.0 | 6 votes |
public void addFront(int objectHandle, String filename, Bitmap thumbnail) { if (maxNumPictures == 0) { if (thumbnail != null) { thumbnail.recycle(); } return; } for (Integer i : handles) { if (i == objectHandle) { return; } } handles.add(objectHandle); thumbnails.add(thumbnail); filenames.add(filename); checkListSizes(); notifyDataSetChanged(); }
Example #5
Source File: FlyoutMenuView.java From FlyoutMenus with MIT License | 6 votes |
Bitmap createMenuShadowBitmap() { menuShadowRadius = (int) flyoutMenuView.menuElevation * 2; menuShadowInset = menuShadowRadius / 2; int size = 2 * menuShadowRadius + 1; Bitmap shadowBitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); shadowBitmap.eraseColor(0x0); // clear Paint paint = new Paint(); paint.setAntiAlias(true); paint.setShader(new RadialGradient( menuShadowRadius + 1, menuShadowRadius + 1, menuShadowRadius, ColorUtils.setAlphaComponent(SHADOW_COLOR, SHADOW_ALPHA), ColorUtils.setAlphaComponent(SHADOW_COLOR, 0), Shader.TileMode.CLAMP)); Canvas canvas = new Canvas(shadowBitmap); canvas.drawRect(0, 0, size, size, paint); return shadowBitmap; }
Example #6
Source File: RoundedCornersTransformation.java From glide-transformations with Apache License 2.0 | 6 votes |
@Override protected Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) { int width = toTransform.getWidth(); int height = toTransform.getHeight(); Bitmap bitmap = pool.get(width, height, Bitmap.Config.ARGB_8888); bitmap.setHasAlpha(true); setCanvasBitmapDensity(toTransform, bitmap); Canvas canvas = new Canvas(bitmap); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setShader(new BitmapShader(toTransform, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)); drawRoundRect(canvas, paint, width, height); return bitmap; }
Example #7
Source File: CustomNotificationBuilder.java From delion with Apache License 2.0 | 6 votes |
/** * Shows the work profile badge if it is needed. */ private void addWorkProfileBadge(RemoteViews view) { Resources resources = mContext.getResources(); DisplayMetrics metrics = resources.getDisplayMetrics(); int size = dpToPx(WORK_PROFILE_BADGE_SIZE_DP, metrics); int[] colors = new int[size * size]; // Create an immutable bitmap, so that it can not be reused for painting a badge into it. Bitmap bitmap = Bitmap.createBitmap(colors, size, size, Bitmap.Config.ARGB_8888); Drawable inputDrawable = new BitmapDrawable(resources, bitmap); Drawable outputDrawable = ApiCompatibilityUtils.getUserBadgedDrawableForDensity( mContext, inputDrawable, null /* badgeLocation */, metrics.densityDpi); // The input bitmap is immutable, so the output drawable will be a different instance from // the input drawable if the work profile badge was applied. if (inputDrawable != outputDrawable && outputDrawable instanceof BitmapDrawable) { view.setImageViewBitmap( R.id.work_profile_badge, ((BitmapDrawable) outputDrawable).getBitmap()); view.setViewVisibility(R.id.work_profile_badge, View.VISIBLE); } }
Example #8
Source File: BitmapUtil.java From VCL-Android with Apache License 2.0 | 6 votes |
@TargetApi(Build.VERSION_CODES.KITKAT) static boolean canUseForInBitmap( Bitmap candidate, BitmapFactory.Options targetOptions) { if (candidate == null) return false; if (AndroidUtil.isKitKatOrLater()) { if (targetOptions.inSampleSize == 0) return false; // From Android 4.4 (KitKat) onward we can re-use if the byte size of // the new bitmap is smaller than the reusable bitmap candidate // allocation byte count. int width = targetOptions.outWidth / targetOptions.inSampleSize; int height = targetOptions.outHeight / targetOptions.inSampleSize; int byteCount = width * height * getBytesPerPixel(candidate.getConfig()); return byteCount <= candidate.getAllocationByteCount(); } // On earlier versions, the dimensions must match exactly and the inSampleSize must be 1 return candidate.getWidth() == targetOptions.outWidth && candidate.getHeight() == targetOptions.outHeight && targetOptions.inSampleSize == 1; }
Example #9
Source File: PlayPauseButton.java From MusicBobber with MIT License | 6 votes |
public void albumCover(Drawable newAlbumCover) { if(this.albumCover == newAlbumCover) return; this.albumCover = newAlbumCover; if(albumCover instanceof BitmapDrawable && !isNeedToFillAlbumCoverMap.containsKey(albumCover.hashCode())) { Bitmap bitmap = ((BitmapDrawable) albumCover).getBitmap(); if(bitmap != null && !bitmap.isRecycled()) { if(lastPaletteAsyncTask != null && !lastPaletteAsyncTask.isCancelled()) { lastPaletteAsyncTask.cancel(true); } lastPaletteAsyncTask = Palette.from(bitmap).generate(palette -> { int dominantColor = palette.getDominantColor(Integer.MAX_VALUE); if(dominantColor != Integer.MAX_VALUE) { Color.colorToHSV(dominantColor, hsvArray); isNeedToFillAlbumCoverMap.put(albumCover.hashCode(), hsvArray[2] > 0.65f); postInvalidate(); } }); } } postInvalidate(); }
Example #10
Source File: MyHttpTileDataSource.java From hellomap3d-android with MIT License | 6 votes |
public TileData loadTile(MapTile tile) { String urlString = super.buildTileUrl(tile); Log.debug("requesting tile: "+urlString); Bitmap bmp = null; try { URL url = new URL(urlString); bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); } catch (IOException e) { e.printStackTrace(); return null; } return new TileData(BitmapUtils.createBitmapFromAndroidBitmap(bmp).compressToInternal()); }
Example #11
Source File: BitmapActivity.java From android-combination-avatar with Apache License 2.0 | 6 votes |
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_bitmap); mImageView1 = (ImageView) findViewById(R.id.imageView1); mImageView2 = (ImageView) findViewById(R.id.imageView2); mImageView3 = (ImageView) findViewById(R.id.imageView3); mImageView4 = (ImageView) findViewById(R.id.imageView4); Bitmap avatar1 = BitmapFactory.decodeResource(getResources(), R.drawable.headshow1); Bitmap avatar2 = BitmapFactory.decodeResource(getResources(), R.drawable.headshow2); Bitmap avatar3 = BitmapFactory.decodeResource(getResources(), R.drawable.headshow3); mBmps.add(avatar1); mBmps.add(avatar2); mBmps.add(avatar3); }
Example #12
Source File: RoundedDrawable.java From ClipCircleHeadLikeQQ with Apache License 2.0 | 6 votes |
public RoundedDrawable(Bitmap bitmap) { mBitmap = bitmap; mBitmapWidth = bitmap.getWidth(); mBitmapHeight = bitmap.getHeight(); mBitmapRect.set(0, 0, mBitmapWidth, mBitmapHeight); mBitmapPaint = new Paint(); mBitmapPaint.setStyle(Paint.Style.FILL); mBitmapPaint.setAntiAlias(true); mBorderPaint = new Paint(); mBorderPaint.setStyle(Paint.Style.STROKE); mBorderPaint.setAntiAlias(true); mBorderPaint.setColor(mBorderColor.getColorForState(getState(), DEFAULT_BORDER_COLOR)); mBorderPaint.setStrokeWidth(mBorderWidth); }
Example #13
Source File: Crossfade.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
private void captureValues(TransitionValues transitionValues) { View view = transitionValues.view; Rect bounds = new Rect(0, 0, view.getWidth(), view.getHeight()); if (mFadeBehavior != FADE_BEHAVIOR_REVEAL) { bounds.offset(view.getLeft(), view.getTop()); } transitionValues.values.put(PROPNAME_BOUNDS, bounds); if (Transition.DBG) { Log.d(LOG_TAG, "Captured bounds " + transitionValues.values.get(PROPNAME_BOUNDS)); } Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888); if (view instanceof TextureView) { bitmap = ((TextureView) view).getBitmap(); } else { Canvas c = new Canvas(bitmap); view.draw(c); } transitionValues.values.put(PROPNAME_BITMAP, bitmap); // TODO: I don't have resources, can't call the non-deprecated method? BitmapDrawable drawable = new BitmapDrawable(bitmap); // TODO: lrtb will be wrong if the view has transXY set drawable.setBounds(bounds); transitionValues.values.put(PROPNAME_DRAWABLE, drawable); }
Example #14
Source File: RegisterPhotoActivity.java From Android with MIT License | 6 votes |
@Override public void onPictureTaken(byte[] data, Camera camera) { takePhotoImg.setEnabled(true); file = FileUtil.byteArrayToFile(data,FileUtil.FileType.IMG); releasedCamera(); if (file == null) { //no path to picture, return safeToTakePicture = true; return; } Bitmap bitmap = BitmapFactory.decodeFile(file.getPath()); int w = bitmap.getWidth(); int retY = toolbarTop.getHeight(); int h = w; if (retY + w > bitmap.getHeight()) { h = bitmap.getHeight(); retY = 0; } Bitmap cropBitmap = Bitmap.createBitmap(bitmap, 0, retY, w, h, null, false); File fileCrop = BitmapUtil.getInstance().bitmapSavePath(cropBitmap); FileUtil.deleteFile(file.getPath()); PreviewPhotoActivity.startActivity(mActivity, fileCrop.getAbsolutePath()); safeToTakePicture = true; }
Example #15
Source File: TransitionAnimation.java From iGap-Android with GNU Affero General Public License v3.0 | 5 votes |
private static void setImageToView(View toView, Bitmap bitmap) { if (toView instanceof ImageView) { final ImageView toImageView = (ImageView) toView; toImageView.setImageBitmap(bitmap); } else { ViewCompat.setBackground(toView, new BitmapDrawable(toView.getResources(), bitmap)); } }
Example #16
Source File: DefaultVideoPosterRequestHandler.java From android-chromium with BSD 2-Clause "Simplified" License | 5 votes |
private static InputStream getInputStream(final AwContentsClient contentClient) throws IOException { final PipedInputStream inputStream = new PipedInputStream(); final PipedOutputStream outputStream = new PipedOutputStream(inputStream); // Send the request to UI thread to callback to the client, and if it provides a // valid bitmap bounce on to the worker thread pool to compress it into the piped // input/output stream. ThreadUtils.runOnUiThread(new Runnable() { @Override public void run() { final Bitmap defaultVideoPoster = contentClient.getDefaultVideoPoster(); if (defaultVideoPoster == null) { closeOutputStream(outputStream); return; } AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() { @Override public void run() { try { defaultVideoPoster.compress(Bitmap.CompressFormat.PNG, 100, outputStream); outputStream.flush(); } catch (IOException e) { Log.e(TAG, null, e); } finally { closeOutputStream(outputStream); } } }); } }); return inputStream; }
Example #17
Source File: ImageUpdater.java From TelePlus-Android with GNU General Public License v2.0 | 5 votes |
public void openGallery() { if (parentFragment == null) { return; } if (Build.VERSION.SDK_INT >= 23 && parentFragment != null && parentFragment.getParentActivity() != null) { if (parentFragment.getParentActivity().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { parentFragment.getParentActivity().requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 4); return; } } PhotoAlbumPickerActivity fragment = new PhotoAlbumPickerActivity(true, false, false, null); fragment.setDelegate(new PhotoAlbumPickerActivity.PhotoAlbumPickerActivityDelegate() { @Override public void didSelectPhotos(ArrayList<SendMessagesHelper.SendingMediaInfo> photos) { if (!photos.isEmpty()) { Bitmap bitmap = ImageLoader.loadBitmap(photos.get(0).path, null, 800, 800, true); processBitmap(bitmap); } } @Override public void startPhotoSelectActivity() { try { Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT); photoPickerIntent.setType("image/*"); parentFragment.startActivityForResult(photoPickerIntent, 14); } catch (Exception e) { FileLog.e(e); } } }); parentFragment.presentFragment(fragment); }
Example #18
Source File: PaintView.java From djl-demo with Apache License 2.0 | 5 votes |
@SuppressLint("DefaultLocale") public void runInference() { RectF bound = maxBound.getBound(); int x = (int) bound.left; int y = (int) bound.top; int width = (int) Math.ceil(bound.width()); int height = (int) Math.ceil(bound.height()); // do crop Bitmap bmp = Bitmap.createBitmap(bitmap, x, y, width, height); // do scaling Bitmap bmp64 = Bitmap.createScaledBitmap(bmp, 64, 64, true); try { Classifications classifications = predictor.predict(factory.fromImage(bmp64)); imageView.setImageBitmap(bmp); List<Classifications.Classification> list = classifications.topK(3); StringBuilder sb = new StringBuilder(); for (Classifications.Classification classification : list) { sb.append(classification.getClassName()) .append(": ") .append(String.format("%.2f%%", 100 * classification.getProbability())) .append("\n"); } textView.setText(sb.toString()); } catch (TranslateException e) { Log.e("DoodleDraw", null, e); } }
Example #19
Source File: ImageSource.java From PdfViewPager with Apache License 2.0 | 5 votes |
@NonNull public static ImageSource cachedBitmap(@NonNull Bitmap bitmap) { //noinspection ConstantConditions if (bitmap == null) { throw new NullPointerException("Bitmap must not be null"); } return new ImageSource(bitmap, true); }
Example #20
Source File: ImageHelper.java From fanfouapp-opensource with Apache License 2.0 | 5 votes |
public static Bitmap resizeBitmap(final Bitmap input, int destWidth, int destHeight) { final int srcWidth = input.getWidth(); final int srcHeight = input.getHeight(); boolean needsResize = false; float p; if ((srcWidth > destWidth) || (srcHeight > destHeight)) { needsResize = true; if ((srcWidth > srcHeight) && (srcWidth > destWidth)) { p = (float) destWidth / (float) srcWidth; destHeight = (int) (srcHeight * p); } else { p = (float) destHeight / (float) srcHeight; destWidth = (int) (srcWidth * p); } } else { destWidth = srcWidth; destHeight = srcHeight; } if (needsResize) { final Bitmap output = Bitmap.createScaledBitmap(input, destWidth, destHeight, true); return output; } else { return input; } }
Example #21
Source File: BitmapTools.java From starcor.xul with GNU Lesser General Public License v3.0 | 5 votes |
/** * 根据丢弃记录修正同尺寸元素的重用队列长度 * 如果重用比例越小, 队列长度越小 */ private static int fixMaximumSameDimension(Bitmap bmp, int maximumSameDimension) { final Config cfg = getConfig(bmp); Long key = Long.valueOf(bmp.getWidth() * 0x8000 + bmp.getHeight() * 0x20 + cfg.ordinal()); ReuseStatisticInfo record = _reuseStatistic.get(key); if (record == null || record.recycled < 5) { return maximumSameDimension; } if (record.dropPercent() < 5) { maximumSameDimension *= 1.2; } else if (record.dropPercent() > 20) { maximumSameDimension *= 0.8; } else if (record.dropPercent() > 50) { maximumSameDimension *= 0.5; } else if (record.dropPercent() > 80) { maximumSameDimension *= 0.2; } else if (record.dropPercent() > 90) { maximumSameDimension *= 0.1; } else if (record.dropPercent() > 95) { maximumSameDimension = 1; } maximumSameDimension *= (record.reusePercent() + 0.1); if (maximumSameDimension < 1) { maximumSameDimension = 1; } return maximumSameDimension; }
Example #22
Source File: FirebaseFaceDetector.java From mollyim-android with GNU General Public License v3.0 | 5 votes |
private static int getPerformanceMode(Bitmap source) { if (Build.VERSION.SDK_INT < 28) { return FirebaseVisionFaceDetectorOptions.FAST; } return source.getWidth() * source.getHeight() < MAX_SIZE ? FirebaseVisionFaceDetectorOptions.ACCURATE : FirebaseVisionFaceDetectorOptions.FAST; }
Example #23
Source File: BitmapPixelUtil.java From HideImageMaker with Apache License 2.0 | 5 votes |
/** * 将bitmap的透明度换成目标bitmap的透明度 * * @param src 作用蒙板的bitmap * @param target 目标bitmap * @return 添加蒙板后的bitmap */ public static Bitmap 蒙版(Bitmap src, Bitmap target) { final int width = src.getWidth(), height = src.getHeight(); int[] srcPixels = new int[width * height]; final Bitmap result = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888); getBitmapPixelColor(src, (x, y, a, r, g, b) -> { int dstA, dstPixelColor; dstPixelColor = target.getPixel(x, y); dstA = Color.alpha(dstPixelColor); // result.setPixel(x, y, Color.argb(dstA, r, g, b)); srcPixels[x + y * width] = Color.argb(dstA, r, g, b); }); result.setPixels(srcPixels, 0, width, 0, 0, width, height); return result; }
Example #24
Source File: TinyDB.java From Simple-Accounting with GNU General Public License v3.0 | 5 votes |
/** * Saves 'theBitmap' into folder 'theFolder' with the name 'theImageName' * @param theFolder the folder path dir you want to save it to e.g "DropBox/WorkImages" * @param theImageName the name you want to assign to the image file e.g "MeAtLunch.png" * @param theBitmap the image you want to save as a Bitmap * @return returns the full path(file system address) of the saved image */ public String putImage(String theFolder, String theImageName, Bitmap theBitmap) { if (theFolder == null || theImageName == null || theBitmap == null) return null; this.DEFAULT_APP_IMAGEDATA_DIRECTORY = theFolder; String mFullPath = setupFullPath(theImageName); if (!mFullPath.equals("")) { lastImagePath = mFullPath; saveBitmap(mFullPath, theBitmap); } return mFullPath; }
Example #25
Source File: BaseMemoryCache.java From Android-Application-ZJB with Apache License 2.0 | 5 votes |
@Override public Bitmap get(String key) { Bitmap result = null; Reference<Bitmap> reference = softMap.get(key); if (reference != null) { result = reference.get(); } return result; }
Example #26
Source File: WallpaperFactory.java From NotificationPeekPort with Apache License 2.0 | 5 votes |
/** * Convert drawable to bitmap. * * @param drawable Drawable object to be converted. * @return converted bitmap. */ private Bitmap drawableToBitmap(Drawable drawable, int width) { Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); drawable.draw(canvas); bitmap = cropBitmap(bitmap, width); return bitmap; }
Example #27
Source File: SizeConfigStrategy.java From giffun with Apache License 2.0 | 5 votes |
@Override public void put(Bitmap bitmap) { int size = Util.getBitmapByteSize(bitmap); Key key = keyPool.get(size, bitmap.getConfig()); groupedMap.put(key, bitmap); NavigableMap<Integer, Integer> sizes = getSizesForConfig(bitmap.getConfig()); Integer current = sizes.get(key.size); sizes.put(key.size, current == null ? 1 : current + 1); }
Example #28
Source File: MySlidingDrawer.java From slidingtabs with GNU General Public License v2.0 | 5 votes |
@Override protected void dispatchDraw(Canvas canvas) { final long drawingTime = getDrawingTime(); final View handle = mHandle; final boolean isVertical = mVertical; drawChild(canvas, handle, drawingTime); if (mTracking || mAnimating) { final Bitmap cache = mContent.getDrawingCache(); if (cache != null) { if (isVertical) { canvas.drawBitmap(cache, 0, handle.getBottom(), null); } else { canvas.drawBitmap(cache, handle.getRight(), 0, null); } } else { canvas.save(); canvas.translate(isVertical ? 0 : handle.getLeft() - mTopOffset, isVertical ? handle.getTop() - mTopOffset : 0); drawChild(canvas, mContent, drawingTime); canvas.restore(); } } else if (mExpanded) { drawChild(canvas, mContent, drawingTime); } else { Paint paint2 = new Paint(); paint2.setColor(mBackgroundColor); paint2.setStyle(Style.FILL); if (isVertical) { canvas.drawRect(0, handle.getBottom(), mContent.getRight(), mContent.getBottom(), paint2); } else { } } }
Example #29
Source File: AccountManagementFragment.java From AndroidChromium with Apache License 2.0 | 5 votes |
/** * Creates a new image with the picture overlaid by the badge. * @param userPicture A bitmap to overlay on. * @param badge A bitmap to overlay with. * @return A bitmap with the badge overlaying the {@code userPicture}. */ private static Bitmap overlayChildBadgeOnUserPicture( Bitmap userPicture, Bitmap badge, Resources resources) { assert userPicture.getWidth() == resources.getDimensionPixelSize(R.dimen.user_picture_size); int borderSize = resources.getDimensionPixelOffset(R.dimen.badge_border_size); int badgeRadius = resources.getDimensionPixelOffset(R.dimen.badge_radius); // Create a larger image to accommodate the badge which spills the original picture. int badgedPictureWidth = resources.getDimensionPixelOffset(R.dimen.badged_user_picture_width); int badgedPictureHeight = resources.getDimensionPixelOffset(R.dimen.badged_user_picture_height); Bitmap badgedPicture = Bitmap.createBitmap(badgedPictureWidth, badgedPictureHeight, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(badgedPicture); canvas.drawBitmap(userPicture, 0, 0, null); // Cut a transparent hole through the background image. // This will serve as a border to the badge being overlaid. Paint paint = new Paint(); paint.setAntiAlias(true); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); int badgeCenterX = badgedPictureWidth - badgeRadius; int badgeCenterY = badgedPictureHeight - badgeRadius; canvas.drawCircle(badgeCenterX, badgeCenterY, badgeRadius + borderSize, paint); // Draw the badge canvas.drawBitmap(badge, badgeCenterX - badgeRadius, badgeCenterY - badgeRadius, null); return badgedPicture; }
Example #30
Source File: CircularImageView.java From arcusandroid with Apache License 2.0 | 5 votes |
public void setImageBitmap (@Nullable Bitmap bitmap) { resizedCircularImage = bitmap; // Special case: remove image altogether if (bitmap == null) { super.setImageBitmap(null); } else { imageHeight = resizedCircularImage.getHeight(); imageWidth = resizedCircularImage.getWidth(); viewHeight = imageHeight + (bevelStrokeWidth * 2); viewWidth = imageWidth + (bevelStrokeWidth * 2); setBevelVisible(bevelVisible); } }