سؤال

I would like the user to get the option once the chosen image is clicked to set the image as their wallpaper or to save it to their SD card.

This is my first time doing this so I need some guidance. I have looked at other questions similar to this one but everyone uses different methods to the one I have done to set up displaying the images.

Thanks in advance, here's the code:

AdapterView for Displayimagesin:

package com.question;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class AdapterViewADV extends BaseAdapter {
private Context mContext;


public Integer[] mThumbIds = {
    R.drawable.Image1,
    R.drawable.Image2,
    R.drawable.Image3,
    R.drawable.Image4,
    R.drawable.Image5,
    R.drawable.Image6

};


public AdapterViewADV(Context c){
mContext = c;
}

@Override
public int getCount() {
return mThumbIds.length;
}

@Override
public Object getItem(int position) {
return mThumbIds[position];
}

@Override
public long getItemId(int position) {
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = null;
if(convertView == null){
   imageView = new ImageView(mContext);imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
   imageView.setLayoutParams(new GridView.LayoutParams(NO_SELECTION, NO_SELECTION));
   convertView = imageView;
}else{
    imageView = (ImageView)convertView;
}
imageView.setImageResource(mThumbIds[position]);

return convertView;


       } 
}

Class displaying images in:

package com.question;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.Toast;

public class Displayimagesin extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_battlefield4);

    GridView gridView = (GridView) findViewById(R.id.grid_view);

    // Instance of ImageAdapter Class
    gridView.setAdapter(new AdapterViewADV(this));

    gridView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v,
                int position, long id) {

            Toast.makeText(Displayimagesin.this, "Wallpaper set",
                    Toast.LENGTH_SHORT).show();

        }
    });
}

}
هل كانت مفيدة؟

المحلول

set wallpaper by calling WallpaperManager . get a reference to your image to Bitmap. something like this

WallpaperManager wm=WallpaperManager.getInstance(this);
wm.setBitmap(bitmap);

and in manifest file add permission

android.permission.SET_WALLPAPER

hope it helps.

نصائح أخرى

Try to use WallpaperManager to set wallpaper

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

            myWallpaperManager.setResource(mThumbIds[curruntPosition]);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top