2012-11-02 32 views
3

我在ImagePagerActivity中添加一个按钮,将图像设置为手机的背景。 功能本身运行良好(如果我设置R.drawable.icon,我可以将应用程序的图标设置为bg)。通用图像加载器:如何捕捉浏览图像的id?

问题是我严格不知道如何捕捉图像ID,以便人们可以设置为他们当前浏览的图像。我尝试了很多东西,但没有任何工作。

例如,R.id.image发送“false”,R.layout.item_pager_image发送XML路径(好的,这是正常的,它只是用于测试)等等......我真的不知道我可以用什么值来说“嘿,把我正在看的这张照片作为我的新手机背景“。

这里是我在ImagePagerActivity.java的最后}之前使用的代码。 (是的壁纸代码被评论,我打印值调试)

感谢您的帮助!与ImageView.setTag()标签或编程,后来与ImageView.getTag()方法得到它:

public void onWallpaperClick(View view) { 
     openMyDialog(null); 
    } 

    public void openMyDialog(View view) { 
     showDialog(10); 
    } 

    //@Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
     case 10: 
      // Create our AlertDialog 
      Builder builder = new AlertDialog.Builder(this); 
      builder.setMessage("Définir cette photo comme fond d'écran de votre appareil ?") 
        .setCancelable(true) 
        .setPositiveButton("Oui", 
          new DialogInterface.OnClickListener() { 
           @Override 
           public void onClick(DialogInterface dialog, 
             int which) { 
            // Ends the activity 
            //HomeActivity.this.finish(); 
            WallpaperManager myWallpaperManager 
            = WallpaperManager.getInstance(getApplicationContext()); 
            //try { 
            //myWallpaperManager.setResource(R.id.image); 
            //} catch (IOException e) { 
            // e.printStackTrace(); 
            // } 
            Toast.makeText(getApplicationContext(), 
              R.drawable.icon, 
              Toast.LENGTH_SHORT).show(); 

           } 
          }) 
        .setNegativeButton("Non", 
          new DialogInterface.OnClickListener() { 

           @Override 
           public void onClick(DialogInterface dialog, 
             int which) { 
            Toast.makeText(getApplicationContext(), 
              "Ok !", 
              Toast.LENGTH_SHORT).show(); 
           } 
          }); 

      return builder.create(); 
     } 
     return super.onCreateDialog(id); 
    } 

回答

0

设置图像绘制ID作为它的标签,在与Android的XML。

+0

THX我会尽快尝试。我会评论结果。 – Taklo

+0

我没能成功。不知道,但我认为,与UAL这是不可能的,而他的方式它加载图像。 – Taklo

1

你可以试试这个,如果论文的方法是到显示器的同一活动:

在ImageLoadingListener :: OnLoadingComplete(位图位图)方法,你可以得到位图加载,所以与属性处理位图。

public class myActivity { 
    Bitmap current_bitmap; 
{...} 
    imageLoader.displayImage(images[position], imageView, options, 
     new ImageLoadingListener() { 
      @Override 
      public void onLoadingComplete(Bitmap loadedImage) { 
       current_bitmap = loadedImage; 
      } 
      {...} 
     } 
} 

,你可以得到它WallpaperManager使用

WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); 
try { 
    myWallpaperManager.setBitmap(current_bitmap); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
+1

谢谢!它有效!...有时。我解释说:有时正确的图像被设置为壁纸,有时是从列表中的图像,有时从列表中的下面的图像...我没有看到逻辑。 – Taklo

+0

如果可以帮忙,这里是完整的原始活动文件:https://github.com/nostra13/Android-Universal-Image-Loader/blob/master/UniversalImageLoaderExample/src/com/nostra13/example/universalimageloader/ImagePagerActivity。 java – Taklo

+0

Taklo我和你有同样的问题。你找到了解决方案吗? – Joolah