【问题标题】:How to set image as wallpaper from the ImageView?如何从 ImageView 将图像设置为墙纸?
【发布时间】:2013-03-15 03:26:39
【问题描述】:

我有一个活动,其中有两个按钮和一个 ImageView。一个按钮是从手机的相机应用程序中获取图像并将其设置为 ImageView,另一个按钮是将该图像设置为主屏幕壁纸,所以我想要代码如何将此图像从 ImageView 设置为壁纸? ??????

【问题讨论】:

    标签: android imageview wallpaper


    【解决方案1】:

    第 1 步: 获取附加到 ImageView 的图像。

    Setp 2:将该图像设置为墙纸。

    第 3 步:AndroidManifest.xml 中添加设置壁纸的权限!

    第 1 步检查This 答案!

    imageView.buildDrawingCache();
    Bitmap bmap = imageView.getDrawingCache();
    

    对于第 2 步:

    WallpaperManager m=WallpaperManager.getInstance(this);
    
    try {
        m.setBitmap(bmap);
    } catch (IOException e) {
        e.printStackTrace();
    }
    

    对于第 3 步: 也包括此权限。

    <uses-permission android:name="android.permission.SET_WALLPAPER" />
    

    如果这不适合你,请告诉我!

    【讨论】:

      【解决方案2】:

      这可以分为两部分来回答。

      首先是设置WallPaper:

      WallpaperManager wallManager = WallpaperManager.getInstance(getApplicationContext());
      try {
          wallManager.setBitmap(bmpImg);
          Toast.makeText(MainActivity.this, "Wallpaper Set Successfully!!", Toast.LENGTH_SHORT).show();
      } catch (IOException e) {
          Toast.makeText(MainActivity.this, "Setting WallPaper Failed!!", Toast.LENGTH_SHORT).show();
      }
      

      第二部分是可选的,只有在您没有为ImageView 设置位图时才会显示出来。 在这种情况下,您需要在设置WallPaper之前执行此步骤

      Bitmap bmpImg = ((BitmapDrawable)yourImageView.getDrawable()).getBitmap();
      

      【讨论】:

      • 您好!我可以知道哪种设置墙纸更好。我尝试了这两个答案,并且它们的性能看起来相同。请告诉我哪种方法更好?
      • @KhanSquare:很难说。两者几乎相同。除了另一个问题有更多的选票。 ;-)
      • 可是我用的是你的方法!你的声望比 Shajeel Afjal 还高所以我要凭经验。 ;)
      • @KhanSquare。老实说,我的名声不应该是决定因素。让我们面对现实吧,另一个答案确实有更多的选票。虽然我从来没有测试过他的代码,但如果你没有注意到两者之间的性能差异,请使用我的代码。在这种情况下,我很高兴能帮上忙。 :-)
      【解决方案3】:

      设置壁纸:

                  Bitmap bitmapImg = ((BitmapDrawable) YourImageView.getDrawable()).getBitmap();
      
                  WallpaperManager wallManager = WallpaperManager.getInstance(getApplicationContext());
                  try {
                      wallManager.clear();
                      wallManager.setBitmap(bitmapImg);
      
      
                  } catch (IOException ex) {
      
                  }
      

      你必须在清单文件中添加两个权限

      1. <uses-permission android:name="android.permission.SET_WALLPAPER" />
      2. <uses-permission android:name="android.permission.WRITE_SETTINGS" />
      

      【讨论】:

      • 我们无法注册权限。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多