2015-04-04 106 views
0

我在可繪製文件夾中有許多圖像。我想將當前選定的圖像作爲牆紙按鈕單擊。獲取可繪製圖像ID

int[] resources = { 
    R.drawable.tssr_1, 
    R.drawable.tssr_2, 
    R.drawable.tssr_3, 
    R.drawable.tssr_4, 
    R.drawable.tssr_5, 
    R.drawable.tssr_6 
}; 

WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); 

try { 
    //set wallpaper picture from resource here 
    myWallpaperManager.setResource(R.drawable.tssr_1); 
    //showToast("Success set as wallpaper"); 
} catch (IOException e) { 
    //showToast("Error set as wallpaper"); 
} 

這裏R.drawable.tssr_1被硬編碼,以便應用程序成功地設置tssr_1圖像作爲牆紙圖像。我想設置當前顯示在屏幕上的圖像。我如何獲得該圖像的ID?

+0

也許你應該叫'myWallpaperManager.setResource()'的'View.setOnClickListener(OnClickListener監聽器)' – li2 2015-04-04 14:22:16

+0

LI2感謝您的回覆。你能寫一小段代碼嗎?我如何在運行時通過數組並選擇當前顯示的圖像ID? – Heidi 2015-04-04 14:26:00

+0

想知道如何從你的'資源'數組中獲得價值嗎? – 2015-04-04 16:20:02

回答

0
ViewFlipper vf = new ViewFlipper(getApplicationContext());   
    ImageView image = new ImageView(getApplicationContext()); 
    // set resId as image's tag, then add to viewflipper. 
    image.setTag(imageResId); 
    vf.addView(image); 

    // the listener will be invoked when image in flipper is clicked and held, 
    // then you can set the image as your wall paper. 
    vf.setOnLongClickListener(new OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View v) { 
      int resId = (Integer) v.getTag(); // get image tag 
      myWallpaperManager.setResource(resId); 
      return false; 
     } 
    }); 
+0

** myWallpaperManager.setResource(resId); ** working,thanks。但是現在圖像超出屏幕的邊界這是我試過的 – Heidi 2015-04-05 05:22:39

+0

這就是我試過的 * *位圖WPimg = BitmapFactory.decodeResource(mContext.getResources(), \t \t \t imageIDs [imageIDforWallPaper]); \t \t \t \t \t \t \t \t WallpaperManager WM =(WallpaperManager)getSystemService(WALLPAPER_SERVICE); \t \t \t \t嘗試{ \t \t \t \t \t wm.setBitmap(WPimg); \t \t \t \t}趕上(IOException的發送){ \t \t \t \t \t // TODO自動生成的catch程序塊 \t \t \t \t \t e.printStackTrace(); \t \t \t \t} \t \t \t \t wm.suggestDesiredDimensions(寬度,高度); ** 但應用程序中止。任何建議,使其工作。謝謝 – Heidi 2015-04-05 05:29:36

+0

也許你應該打開一個新的問題,並添加有關中止的詳細信息。讓更多的人看到。 – li2 2015-04-05 06:17:20