(题目)前面,为在启动器应用中显示各个activity的名称,你使用了 ResolveInfo.loadLabel(...)
方法。 loadIcon() 是 ResolveInfo 类的另一个方法,可以用它为每个应用加载显示图标。作为
方法。 loadIcon() 是 ResolveInfo 类的另一个方法,可以用它为每个应用加载显示图标。作为
练习,请给NerdLauncher应用中显示的所有应用添加图标。
emmm...上面就是题目啦!我们不在叙述之前的操作,按着书来一步一步应该是没有问题,就直接进入主题。
先放图
看到这个,我首先想到这是动态图片加载(程序运行了才可以得到图片)啊,,我们应该更改layout,增加一个ImageView视图用来显示图片。但是之前书上没有新建视图啊,于是就去真正管理试图的ActivityAdapter类中去寻找绑定视图的地方。
在onCreateViewHolder方法中找到了以下这行
View view = layoutInflater
.inflate(android.R.layout.simple_list_item_1, parent, false);
原来是androidstudio自带的视图
ctrl+点击simple_list_item_1,跳转过去,ctrl+a ctrl+c ctrl+v 行云流水的操作,在layout下创建了一个layout视图。
改了个名字。(添加了ImageView后,笔者就没了思路,只好转变思路)
直接为TextView增加一个图片不就得了!很轻松啊这样
于是去ActivityHolder类中添加了如下语句:
private class ActivityHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ private ResolveInfo mResolveInfo; private TextView mNameTextView; public ActivityHolder(View itemView) { super(itemView); mNameTextView = (TextView) itemView; mNameTextView.setOnClickListener(this); } public void bindActivity(ResolveInfo resolveInfo) { mResolveInfo = resolveInfo; PackageManager pm = getActivity().getPackageManager(); String appName = mResolveInfo.loadLabel(pm).toString(); //获取图片 Drawable appIcon = mResolveInfo.loadIcon(pm); mNameTextView.setText(appName); //为TextView设置图片 mNameTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(null,null,appIcon,null); }
mNameTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(null,null,appIcon,null);
此方法四个参数都是drawable类型分别为TextView 的开始、上、结束、下 四个位置放置图片!
第一个方法还未完善,待完善之后再修改博客。不喜勿喷,喷了我也不理你~~嘻嘻。