0

i want set wallpaper which is currenton viewpager imageview on buttonclick but button is not in view pager so how to set the wall paper from viewpager adapter and button is not in the imageview

onclick where i want to set as wall paper

 imagebutton.setOnClickListener(new OnClickListener() 
        {
            @Override
            public void onClick(View v) 
            {

                            // coding for wall set as wallpaper

                int b=pager.getCurrentItem();

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

            }
        });
CopyOfClickedImagesActivity .java
public class CopyOfClickedImagesActivity extends BaseActivity 
{
        ArrayList<HashMap<String,String>> mylist = new ArrayList<HashMap<String,String>>();

        public static final String TAG_STATUS="status";
        public static final String TAG_DATA="data";
        public static final String TAG_ID="id";
        public static final String TAG_CATEGORYNAME="category_name";
        public static final String TAG_IMAGENAME="image_name";
        public static final String TAG_SETID="set_id";


        DisplayImageOptions options;

        ViewPager pager;
        ImageView imagebutton;
        ImagePagerAdapter pagerAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_clickedimage);
        pager=(ViewPager)findViewById(R.id.myviewpager);
        imagebutton=(ImageView)findViewById(R.id.imagebutton);


        BaseActivity.imageLoader.init(ImageLoaderConfiguration.createDefault(getBaseContext()));

        options = new DisplayImageOptions.Builder()
        .showImageForEmptyUri(R.drawable.ic_launcher)
        .showImageOnFail(R.drawable.ic_launcher)
        .resetViewBeforeLoading(true)
        .cacheOnDisk(true)
        .imageScaleType(ImageScaleType.EXACTLY)
        .bitmapConfig(Bitmap.Config.RGB_565)
        .considerExifParams(true)
        .displayer(new FadeInBitmapDisplayer(300))
        .build();


        imagebutton.setOnClickListener(new OnClickListener() 
        {
            @Override
            public void onClick(View v) 
            {

                            // coding for wall set as wallpaper

                int b=pager.getCurrentItem();

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

            }
        });


    }

public class GetImagesAsync extends AsyncTask<String, ArrayList<HashMap<String,String>>, ArrayList<HashMap<String,String>>>
    {


        @Override
        protected ArrayList<HashMap<String, String>> doInBackground(String... params) 
        {
            JsonParser json = new JsonParser();

            String url="myurlhere";
            String data=json.getdata(url);

            try 
            {
                JSONObject jobject= new JSONObject(data);
                String status=jobject.get(TAG_STATUS).toString();
                if(status.equalsIgnoreCase("1"))
                {
                    JSONArray jarray = jobject.getJSONArray(TAG_DATA);

                    for(int i=0;i<jarray.length();i++)
                    {
                        String id =jarray.getJSONObject(i).get(TAG_ID).toString();
                        String category=jarray.getJSONObject(i).get(TAG_IMAGENAME).toString();

                        HashMap<String, String> map = new HashMap<>();
                        map.put(TAG_ID,id);
                        map.put(TAG_IMAGENAME, category);

                        mylist.add(map);

                    }


                }


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

            }

            Log.e("ClickedImagesActivity","Data-------"+data);

            return mylist;
        }

        @Override
        protected void onPostExecute(ArrayList<HashMap<String, String>> result) 
        {

            pagerAdapter=new ImagePagerAdapter(result);
            //pager.setAdapter(new ImagePagerAdapter(result));
            pager.setAdapter(pagerAdapter);

        }

    }

    private class ImagePagerAdapter extends PagerAdapter 
    {

        //private String[] images;
        ArrayList<HashMap<String,String>> images;
        private LayoutInflater inflater;

        ImagePagerAdapter(ArrayList<HashMap<String,String>> images) 
        {
            this.images = images;
            inflater = getLayoutInflater();
        }


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

        @Override
        public int getCount() {
            return images.size();
        }

        @Override
        public Object instantiateItem(ViewGroup view, int position) {
            View imageLayout = inflater.inflate(R.layout.imagelayout, view, false);
            assert imageLayout != null;

            final ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image);
            imageView.setBackgroundResource(R.drawable.rounded_corner);
            imageView.setScaleType(ScaleType.FIT_XY);
            final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading);

            imageView.setTag(position);


            imageLoader.displayImage(images.get(position).get(TAG_IMAGENAME), imageView, options, new SimpleImageLoadingListener() 
            {
                @Override
                public void onLoadingStarted(String imageUri, View view) 
                {
                    spinner.setVisibility(View.VISIBLE);
                }

                @Override
                public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
                    String message = null;
                    switch (failReason.getType()) {
                        case IO_ERROR:
                            message = "Input/Output error";
                            break;
                        case DECODING_ERROR:
                            message = "Image can't be decoded";
                            break;
                        case NETWORK_DENIED:
                            message = "Downloads are denied";
                            break;
                        case OUT_OF_MEMORY:
                            message = "Out Of Memory error";
                            break;
                        case UNKNOWN:
                            message = "Unknown error";
                            break;
                    }


                    spinner.setVisibility(View.GONE);
                }

                @Override
                public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                    spinner.setVisibility(View.GONE);
                }
            });

            view.addView(imageLayout, 0);
            return imageLayout;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view.equals(object);
        }

        @Override
        public void restoreState(Parcelable state, ClassLoader loader) {
        }

        @Override
        public Parcelable saveState() {
            return null;
        }
    }
Mahesh
  • 1,559
  • 6
  • 27
  • 57
  • what is your problem? what you want to do? – M D May 21 '14 at 09:44
  • i want to set wallpaper from pageradapter – Mahesh May 21 '14 at 09:46
  • WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); try { Bitmap bitmap=((BitmapDrawable)imageView.getDrawable()).getBitmap(); if(bitmap!=null) { myWallpaperManager.setBitmap(bitmap); } } catch (IOException e) { e.printStackTrace(); } – Mahesh May 21 '14 at 09:47
  • this code is perfectly work when i clickon baseadapter imageview click listener – Mahesh May 21 '14 at 09:48
  • i have one button which is outside of the pager adapter like our other layout not in baseadapter layout i want to set wallpaper from that button click – Mahesh May 21 '14 at 09:49
  • @AT it's very easy. when you click at button get `ImagePath` for that particular `ViewPager` Page using `String imagePATH=images.get(position).get(TAG_IMAGENAME)` and load that one image as `WallPaper` – M D May 21 '14 at 09:52
  • but why i required the reimage download it is not possible to get bitmap from currentsetted pager adapter item ? – Mahesh May 21 '14 at 09:55
  • @AT ya possible you'll get `Bitmap` by using `Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();` – M D May 21 '14 at 09:58
  • but how to get the instance of current pager item imageview on outside button which is not in baseadapter – Mahesh May 21 '14 at 10:00
  • Let us [continue this discussion in chat](http://chat.stackoverflow.com/rooms/54101/discussion-between-simple-plan-and-android-tech). – M D May 21 '14 at 10:00

0 Answers0