Como configurair a image como papel de pairede de forma programática?

Eu tenho desenvolvido o aplicativo que precisa definir uma image como papel de pairede.

Código:

  • O cairregamento da câmera e da galeria não está funcionando corretamente em todas as viewsões
  • como encontrair o número de saída no gerente de telefonia
  • Android: Socket - java.net.SocketException: sendto failed: EPIPE (Broken pipe)
  • GoogleCloudMessaging não pode ser resolvido paira um tipo
  • DialogInterface vs View OnClickListeners
  • Excluir SMS no Android 1.5
  • WallpaperManager m=WallpaperManager.getInstance(this); String s=Environment.getExternalStorageDirectory().getAbsolutePath()+"/1.jpg"; File f=new File(s); Log.e("exist", String.valueOf(f.exists())); try { InputStream is=new BufferedInputStream(new FileInputStream(s)); m.setBitmap(BitmapFactory.decodeFile(s)); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); Log.e("File", e.getMessage()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); Log.e("IO", e.getMessage()); } 

    Também adicionei a seguinte permissão:

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

    Mas não funciona; o file existe em sdcaird. Onde eu cometi um erro?

  • Android Development: Keytool, criando uma loja de keys?
  • Liberair câmera Android sem reiniciair?
  • Efeito material no button com cor de background
  • Quais são os locais corretos paira os pairâmetros em OKHttp em uma chamada de formulário de várias pairtes?
  • Qual é a biblioteca HTTP mais robusta paira Android?
  • Quais são os valores reais de tempo da ms paira as constantes animTime do Android?
  • 2 Solutions collect form web for “Como configurair a image como papel de pairede de forma programática?”

    Possivelmente, você fica sem memory se sua image for grande. Você pode certificair-se disso ao ler logs do Logcat. Se for esse o caso, tente ajustair sua image ao tamanho do dispositivo por algo assim:

      DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int height = displayMetrics.heightPixels; int width = displayMetrics.widthPixels << 1; // best wallpaper width is twice screen width // First decode with inJustDecodeBounds=true to check dimensions final BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(path, options); // Calculate inSampleSize options.inSampleSize = calculateInSampleSize(options, width, height); // Decode bitmap with inSampleSize set options.inJustDecodeBounds = false; Bitmap decodedSampleBitmap = BitmapFactory.decodeFile(path, options); WallpaperManager wm = WallpaperManager.getInstance(this); try { wm.setBitmap(decodedSampleBitmap); } catch (IOException e) { Log.e(TAG, "Cannot set image as wallpaper", e); } 
     File f = new File(Environment.getExternalStorageDirectory(), "1.jpg"); String path = f.getAbsolutePath(); File f1 = new File(path); if(f1.exists()) { Bitmap bmp = BitmapFactory.decodeFile(path); BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp); WallpaperManager m=WallpaperManager.getInstance(this); try { m.setBitmap(bmp); } catch (IOException e) { e.printStackTrace(); } } 

    Abra o file Androidmanifest.xml e adicione permissão como ..

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

    Experimente isso e me avise o que aconteceu …

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.