以编程方式创建Drawable对象(应用程序图标)的圆角

时间:2018-03-10 21:17:27

标签: android android-drawable

此方法返回设备启动器图标,并且可以操纵drawables。但我想要的是使可绘制的圆形或可能圆角。

如果有可能,你能告诉我怎么做吗?

 private Drawable mIcon;

 public Drawable getIcon() {
    if (mIcon == null) {
        if (mApkFile.exists()) {

            mIcon = mInfo.loadIcon(mContext.getPackageManager());

            return mIcon;
        } else {
            mMounted = false;
        }
    } else if (!mMounted) {
        // If the app wasn't mounted but is now mounted, reload
        // its icon.
        if (mApkFile.exists()) {
            mMounted = true;
            mIcon = mInfo.loadIcon(mContext.getPackageManager());
            return mIcon;
        }
    } else {
        return mIcon;
    }

    return mContext.getResources().getDrawable(android.R.drawable.sym_def_app_icon);
}

1 个答案:

答案 0 :(得分:0)

您需要的是RoundedBitmapDrawable。该过程将如下所示:

  1. 将图标mIcon绘制到Bitmap上(首先使用Bitmap的参数创建mIcon
  2. 使用RoundedBitmapDrawableFactoryBitmap变为RoundedBitmapDrawable
  3. 在新setCornerRadius(float cornerRadius)上使用RoundedBitmapDrawable为您提供所需的角落
  4. 此时你应该有一个RoundedBitmapDrawable来绘制图标,但是当它被调用draw(Canvas canvas)时会有圆角: - )