【问题标题】:How to set Drawable from xml vector inside ImageSpan如何从 ImageSpan 中的 xml 向量设置 Drawable
【发布时间】:2017-05-22 13:21:50
【问题描述】:

如何从ImageSpan 中的xml 向量设置Drawable? 我在下面使用这两种方法。但是我的图标没有显示。当我从可绘制资源图标中使用 png 时,会出现。任何想法?

private void setupEmptyListInfoBox() {
        Drawable icon = loadVectorFromResources(getActivity(), R.drawable.ic_add_circle_24dp);
        ImageSpan is = new ImageSpan(icon, DynamicDrawableSpan.ALIGN_BASELINE);
        String info = getString(R.string.empty_weight_list_info);
        int iconPosition = info.indexOf("|");

        SpannableString text = new SpannableString(info);
        text.setSpan(is, iconPosition, iconPosition + 1, 0);

        mEmptyListInfo.setText(text);
    }

public static Drawable loadVectorFromResources(Context context, int resId) {
    Drawable drawable;
    if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        drawable = VectorDrawableCompat.create(context.getResources(), resId, context.getTheme());
    } else {
        drawable = context.getResources().getDrawable(resId, context.getTheme());
    }
    return drawable;
}

【问题讨论】:

  • 只是想知道,您是否尝试将其放入 XML 中只是为了检查它是否以非编程方式工作?
  • @user6547359 向量是正确的,它适用于 xml,例如android:drawableTop="@drawable/ic_add_circle_24dp" 在 TextView 中。我从矢量资产(android studio)创建它。
  • 试试看这个:stackoverflow.com/questions/3176033/… 也许这只是一个边界问题。
  • @user6547359 setBounds 完美运行,图标显示,谢谢!
  • @user6547359,谢谢。你拯救了我的一天。

标签: android drawable android-drawable android-vectordrawable


【解决方案1】:

我刚刚通过以下方式设法将向量加载到ImageSpan 中:

Drawable myDrawable = AppCompatResources.getDrawable(context, R.drawable.my_drawable);
myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(), myDrawable.getIntrinsicHeight());

ImageSpan myImageSpan = new ImageSpan(myDrawable, ImageSpan.ALIGN_BASELINE);
SpannableString mySpannableString = new SpannableString(context.getString(R.string.my_string));
mySpannableString.setSpan(myImageSpan, 0, 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE);

希望对你有帮助。

【讨论】:

  • 图标具有父布局最大宽度和高度与此代码,setBounds 不做任何事情,即使我做了类似 setBound(0,0,,20,20) 的事情,你有什么解决方案吗?我们如何缩放矢量 xml 可绘制对象?
猜你喜欢
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多