0

Я пытаюсь сделать приложение для обоев, где пользователь может прорисовать изображение, и когда он найдет подходящее изображение, он может установить изображение в качестве обоев. Но я не могу установить обои менеджер здесь мой кодКак установить менеджер обоев в swipeview

Custome swipe adaptte class`package com.example.neelaysrivastava.pr12;

import android.app.WallpaperManager; 
import android.content.Context; 
import android.content.res.Resources; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.support.v4.view.PagerAdapter; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.View; 
import android.widget.ImageView; 
    import android.widget.LinearLayout; 
import android.widget.Button; 

import java.io.IOException; 

public class CustomeSwipeAdapter extends PagerAdapter { 
private int [] image_resource= {R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5,R.drawable.img6, 
     R.drawable.img7,R.drawable.img8,R.drawable.img9,R.drawable.img10,R.drawable.img11,R.drawable.img12,R.drawable.img13, 
     R.drawable.img14,R.drawable.img15,R.drawable.img16, 
     R.drawable.img17,R.drawable.img18,R.drawable.img19,R.drawable.img20}; 
private Context ctx; 
private LayoutInflater layoutInflater; 
public CustomeSwipeAdapter(Context ctx){ 
    this.ctx=ctx; 
} 
@Override 
public int getCount() { 
    return image_resource.length; 
} 

@Override 
public boolean isViewFromObject(View view, Object object) { 
    return (view==(LinearLayout)object); 
} 
Bitmap goal; 
@Override 
public Object instantiateItem(ViewGroup container, final int position) { 
    layoutInflater=(LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View item_view =layoutInflater.inflate(R.layout.second,container,false); 
    ImageView imageView =(ImageView)item_view.findViewById(R.id.imageView); 
    Button button = (Button)item_view.findViewById(R.id.button); 
    imageView.setImageResource(image_resource[position]); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
     goal= BitmapFactory.decodeResource(Resources.getSystem(),image_resource[position]); 
      WallpaperManager wallpaperManager = WallpaperManager.getInstance(ctx.getApplicationContext()); 
      try { 
       wallpaperManager.setBitmap(goal); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
    container.addView(item_view); 
    return item_view; 
} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    container.removeView((LinearLayout)object); 
} 
} 

`

+0

У вас есть ответ? – yshahak

ответ

0

Вы можете попробовать что-то вроде этого:

button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       WallpaperManager wallpaperManager = WallpaperManager.getInstance(ctx.getApplicationContext()); 
       try { 
        int height = wallpaperManager.getDesiredMinimumHeight(); 
        int width = wallpaperManager.getDesiredMinimumWidth(); 
        Bitmap bm = BitmapFactory.decodeResource(v.getContext().getResources(), image_resource[position]); 
        goal = Bitmap.createScaledBitmap(bm, width, height, true); v.getContext().getResources().getDrawable(image_resource[position]); 
        wallpaperManager.setBitmap(goal); 

       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 

Просто, чтобы убедиться, не забудьте разрешение:

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

Thx это сработало для меня –

0

для размещения изображения вы можете использовать

myWallpaperManager.setResource(0);  



myWallpapaerManager.setResource(R.drawable.yourimage) 
Смежные вопросы