0
到目前为止,我使用此代码基于字符串值添加自定义ImageViews屏幕密度绘制资源ID:获取基于使用字符串
RelativeLayout rl_dashboard = (RelativeLayout) mView.findViewById(R.id.rl_dashboard);
for (int i = 0; i < imageResIDs.size(); i++) {
int drawableResourceId = mActivity.getResources().getIdentifier(imageResIDs.get(i), "drawable", mActivity.getPackageName());
ImageView imageView = new ImageView(mActivity);
imageView.setImageDrawable(ContextCompat.getDrawable(mActivity, drawableResourceId));
rl_dashboard.addView(imageView);
}
但是这一点,因为我想,给我的最高解析度可绘制,这是xxxdpi atm。有什么办法可以拉出特定密度的drawable吗?
我使用的检查密度:
DisplayMetrics metrics = new DisplayMetrics();
mActivity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
switch(metrics.densityDpi){
case DisplayMetrics.DENSITY_LOW:
break;
case DisplayMetrics.DENSITY_MEDIUM:
break;
case DisplayMetrics.DENSITY_HIGH:
break;
case DisplayMetrics.DENSITY_XHIGH:
break;
case DisplayMetrics.DENSITY_XXHIGH:
break;
case DisplayMetrics.DENSITY_XXXHIGH:
break;
}
我会拉起资源之前访问我的静态值。
谢谢!