【问题标题】:Set wallpaper using RecyclerView使用 RecyclerView 设置壁纸
【发布时间】:2015-05-13 22:53:06
【问题描述】:

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

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

【问题讨论】:

  • 如果您可以粘贴 GridItem 类的代码会很有帮助

标签: java android android-recyclerview android-wallpaper


【解决方案1】:

您的程序不工作的原因是setResource(int) 方法将int 类型作为参数而不是GridItemtype。

阅读更多来自documentation

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    相关资源
    最近更新 更多