#android #gallery #wallpaper
#Android #Галерея #Обои
Вопрос:
ребята, работающие с Android Gallery, и только что запустили это, однако я пытаюсь выяснить, как одним нажатием кнопки установить выбранное изображение в галерее в качестве обоев телефона. Любая помощь приветствуется. Вот код;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.gallery);
imgView = (ImageView) findViewById(R.id.ImageView01);
imgView.setBackgroundResource(Imgid[0]);
gallery = (Gallery) findViewById(R.id.examplegallery);
gallery.setAdapter(new AddImgAdp(this));
gallery.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position,
long id) {
imgView.setBackgroundResource(Imgid[position]);
}
});
}
Button btn = (Button) findViewById(R.id.button3);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
public class AddImgAdp extends BaseAdapter {
int GalItemBg;
private Context cont;
public AddImgAdp(Context c) {
cont = c;
TypedArray typArray = obtainStyledAttributes(R.styleable.GalleryTheme);
GalItemBg = typArray.getResourceId(
R.styleable.GalleryTheme_android_galleryItemBackground, 0);
typArray.recycle();
}
public int getCount() {
return Imgid.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imgView = new ImageView(cont);
imgView.setImageResource(Imgid[position]);
imgView.setLayoutParams(new Gallery.LayoutParams(80, 70));
imgView.setScaleType(ImageView.ScaleType.FIT_XY);
imgView.setBackgroundResource(GalItemBg);
return imgView;
}
}
}
Ответ №1:
Используйте менеджер обоев:
try {
// Set background from a resource
WallpaperManager.getInstance(this).setResource(R.drawable.bg);
// or set background from a bitmap
WallpaperManager.getInstance(this).setBitmap(mBitmap);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Потребуется это разрешение в вашем манифесте:
<uses-permission android:name="android.permission.SET_WALLPAPER" />
Комментарии:
1. Спасибо, он работает, но возникли проблемы с получением выбранного элемента в галерее