使用RecyclerView设置壁纸

时间:2015-05-13 22:53:06

标签: java android android-recyclerview android-wallpaper

我需要使用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();
                }
            }
        });
    }

所以onClick我应该将图像设置为壁纸但在“setResource”字下我有这个错误:

The method setResource(int) in the type WallpaperManager is not applicable for the arguments (GridItem)

如何将从适配器中选择的项目设置为壁纸?

1 个答案:

答案 0 :(得分:0)

您的程序无法运行的原因,方法setResource(int)int类型作为参数而不是GridItem类型。

documentation

中阅读更多内容
  

将当前系统壁纸更改为给定的位图   资源。资源作为原始数据流打开并复制到   壁纸;它必须是有效的PNG或JPEG图像。

还要确保您的应用有权在清单中设置壁纸

  

此方法要求调用者持有权限SET_WALLPAPER。