我需要设置一个图像作为墙纸使用RecyclerView
。在我的适配器中,我使用了以下代码:
@Override
public void onBindViewHolder(ViewHolder viewHolder, final int i) {
final GridItem nature = mItems.get(i);
viewHolder.tvspecies.setText(nature.getName());
viewHolder.imgThumbnail.setImageResource(nature.getThumbnail());
viewHolder.imgThumbnail.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i("CLick",nature.toString());
try {
wallpaper.setResource(mItems.get(i));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
所以我应该把图片设置为墙纸,但是在"setResource“onClick下面我有这个错误:
The method setResource(int) in the type WallpaperManager is not applicable for the arguments (GridItem)
如何将适配器中选择的项目设置为墙纸?
发布于 2015-05-14 18:09:52
你的程序不能工作的原因是setResource(int)
方法接受int
类型作为参数,而不是GridItem
类型。
从documentation阅读更多信息
将当前系统墙纸更改为给定资源中的位图。资源作为原始数据流打开并复制到墙纸中;它必须是有效的PNG或JPEG图像。
还要确保您的应用程序具有在清单中设置墙纸的权限
此方法要求调用方持有权限SET_WALLPAPER。
https://stackoverflow.com/questions/30226526
复制相似问题