androidで壁紙アプリを作っています。
壁紙を自由に選択できるように端末内の画像を以下のやつで読み込もうと思いました。
そして、それを以下のプログラムで壁紙を設定しようと思いました。
Java
1 WallpaperManager mWM; 2 3 public void onClick(View v) { 4 switch (v.getId()) { 5 case R.id.Button_Set: 6 try { 7 8 mWM.setResource(R.raw.sky); //壁紙設定 9 } catch (IOException e) { 10 e.printStackTrace(); 11 } 12 break; 13 case R.id.Button_Clear: 14 try { 15 16 mWM.clear(); 17 } catch (IOException e) { 18 e.printStackTrace(); 19 } 20 break; 21 } 22 }
そして「//壁紙設定」の行を画像のやつで選択した画像をパスで指定することは可能でしょうか?
その場合、どうすればいいんですか?
画像のやつを表示させるプログラムは以下です。
java
1 findViewById(R.id.load).setOnClickListener(new View.OnClickListener() { 2 @Override 3 public void onClick(View v) { 4 Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); 5 intent.addCategory(Intent.CATEGORY_OPENABLE); 6 intent.setType("image/*"); 7 startActivityForResult(intent, 1000); 8 } 9 }); 10 } 11 @Override 12 public void onActivityResult(int requestCode, int resultCode, Intent resultData) { 13 if (requestCode == 1000 && resultCode == RESULT_OK) { 14 if (resultData != null) { 15 uri = resultData.getData(); 16 ContentResolver contentResolver = this.getContentResolver(); 17 String[] columns = { MediaStore.Images.Media.DATA }; 18 Cursor cursor = contentResolver.query(uri, columns, null, null, null); 19 cursor.moveToFirst(); 20 String path = cursor.getString(0); 21 System.out.println(path); //null 22 Toast.makeText(this , "パスを表示させたい。", Toast.LENGTH_LONG).show(); 23 cursor.close(); 24 } 25 } 26 }
あなたの回答
tips
プレビュー