【发布时间】: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