问题描述
我是新来的编码,并与它之前从来没有做过!我的壁纸应用程序的工作是我创造的画廊。我成功地做到这一点,但我想修改应用程序,这样,当用户点击特定的图像这让他们设置为墙纸。我需要一些帮助这个! (对不起,我英文不好)
有谁知道我应该怎么做呢?真的感谢帮助
以下是我的code ...
MainActivity的.java
进口的java.util.ArrayList;
进口的java.util.List;进口android.app.Activity;
进口android.graphics.Bitmap;
进口android.graphics.drawable.BitmapDrawable;
进口android.graphics.drawable.Drawable;
进口android.os.Bundle;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.AdapterView;
进口android.widget.AdapterView.OnItemSelectedListener;
进口android.widget.Gallery;
进口android.widget.ImageView;
进口android.widget.ImageView.ScaleType;公共类GalleryDemoActivity延伸活动{ 私人ImageView的selectedImageView; 私人ImageView的leftArrowImageView; 私人ImageView的rightArrowImageView; 私人画廊的画廊; 私人INT selectedImagePosition = 0; 私人列表<&可绘制GT;可绘制; 私人GalleryImageAdapter galImageAdapter; @覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main); getDrawablesList();
setupUI();
} 私人无效setupUI(){ selectedImageView =(ImageView的)findViewById(R.id.selected_imageview);
leftArrowImageView =(ImageView的)findViewById(R.id.left_arrow_imageview);
rightArrowImageView =(ImageView的)findViewById(R.id.right_arrow_imageview);
画廊=(图库论坛)findViewById(R.id.gallery); leftArrowImageView.setOnClickListener(新OnClickListener(){ @覆盖
公共无效的onClick(视图v){ 如果(selectedImagePosition大于0){
--selectedImagePosition; } gallery.setSelection(selectedImagePosition,FALSE);
}
}); rightArrowImageView.setOnClickListener(新OnClickListener(){ @覆盖
公共无效的onClick(视图v){ 如果(selectedImagePosition&下; drawables.size() - 1){
++ selectedImagePosition; } gallery.setSelection(selectedImagePosition,FALSE); }
}); gallery.setOnItemSelectedListener(新OnItemSelectedListener(){ @覆盖
公共无效onItemSelected(适配器视图<>母公司,观景,INT POS,长ID){ selectedImagePosition = POS; 如果(selectedImagePosition大于0&放大器;&放大器; selectedImagePosition&下; drawables.size() - 1){ leftArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_left_enabled));
rightArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_right_enabled)); }否则如果(selectedImagePosition == 0){ leftArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_left_disabled)); }否则如果(selectedImagePosition == drawables.size() - 1){ rightArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_right_disabled));
} changeBorderForSelectedImage(selectedImagePosition);
setSelectedImage(selectedImagePosition);
} @覆盖
公共无效onNothingSelected(适配器视图<>为arg0){ } }); galImageAdapter =新GalleryImageAdapter(本,图形); gallery.setAdapter(galImageAdapter); 如果(drawables.size()大于0){ gallery.setSelection(selectedImagePosition,FALSE); } 如果(drawables.size()== 1){ rightArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_right_disabled));
} } 私人无效changeBorderForSelectedImage(INT selectedItemPos){ 诠释计数= gallery.getChildCount(); 的for(int i = 0; I<计数;我++){ ImageView的ImageView的=(ImageView的)gallery.getChildAt(I)
imageView.setBackgroundDrawable(getResources()getDrawable(R.drawable.image_border));
imageView.setPadding(3,3,3,3); } ImageView的ImageView的=(ImageView的)gallery.getSelectedView();
imageView.setBackgroundDrawable(getResources()getDrawable(R.drawable.selected_image_border));
imageView.setPadding(3,3,3,3);
} 私人无效getDrawablesList(){ 可绘制=新的ArrayList<&可绘制GT;();
drawables.add(getResources()getDrawable(R.drawable.natureimage1));
drawables.add(getResources()getDrawable(R.drawable.natureimage2));
drawables.add(getResources()getDrawable(R.drawable.natureimage3));
drawables.add(getResources()getDrawable(R.drawable.natureimage4));
drawables.add(getResources()getDrawable(R.drawable.natureimage5));
drawables.add(getResources()getDrawable(R.drawable.natureimage6));
drawables.add(getResources()getDrawable(R.drawable.natureimage7));
drawables.add(getResources()getDrawable(R.drawable.natureimage8));
drawables.add(getResources()getDrawable(R.drawable.natureimage9));
drawables.add(getResources()getDrawable(R.drawable.natureimage10));
drawables.add(getResources()getDrawable(R.drawable.natureimage11));
drawables.add(getResources()getDrawable(R.drawable.natureimage12));
drawables.add(getResources()getDrawable(R.drawable.natureimage13));
drawables.add(getResources()getDrawable(R.drawable.natureimage14));
drawables.add(getResources()getDrawable(R.drawable.natureimage15)); } 私人无效setSelectedImage(INT selectedImagePosition){ BitmapDrawable BD =(BitmapDrawable)drawables.get(selectedImagePosition);
位图B = Bitmap.createScaledBitmap(bd.getBitmap(),(INT)(bd.getIntrinsicHeight()* 0.9),(INT)(bd.getIntrinsicWidth()* 0.7),假);
selectedImageView.setImageBitmap(二);
selectedImageView.setScaleType(ScaleType.FIT_XY); }
}
GalleryAdapter。 java的
进口的java.util.List;进口android.app.Activity;
进口android.graphics.drawable.Drawable;
进口android.view.View;
进口android.view.ViewGroup;
进口android.widget.BaseAdapter;
进口android.widget.Gallery;
进口android.widget.ImageView;公共类GalleryImageAdapter延伸BaseAdapter { 私人活动范围内; 私有静态ImageView的ImageView的; 私人列表<&可绘制GT; plotsImages; 私有静态ViewHolder持有人; 公共GalleryImageAdapter(Activity上下文,列表<&可绘制GT; plotsImages){ this.context =背景;
this.plotsImages = plotsImages; } @覆盖
公众诠释的getCount(){
返回plotsImages.size();
} @覆盖
公共对象的getItem(INT位置){
返回null;
} @覆盖
众长getItemId(INT位置){
返回0;
} @覆盖
公共查看getView(INT位置,查看convertView,父母的ViewGroup){ 如果(convertView == NULL){ 持有人=新ViewHolder(); ImageView的=新ImageView的(this.context); imageView.setPadding(3,3,3,3); convertView = ImageView的; holder.imageView = ImageView的; convertView.setTag(保持器); }其他{ 支架=(ViewHolder)convertView.getTag();
} holder.imageView.setImageDrawable(plotsImages.get(位置)); holder.imageView.setScaleType(ImageView.ScaleType.FIT_XY);
holder.imageView.setLayoutParams(新Gallery.LayoutParams(150,90)); 返回ImageView的;
} 私有静态类ViewHolder {
ImageView的ImageView的;
}}
main.xml中
<?XML版本=1.0编码=UTF-8&GT?;
<的RelativeLayout的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:背景=@机器人:彩色/白
机器人:方向=垂直> < ImageView的
机器人:ID =@ + ID / selected_imageview
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:layout_above =@ + ID / gallery_relative_layout
机器人:layout_marginLeft =30dip
机器人:layout_marginRight =30dip
机器人:layout_marginTop =30dip/> < RelativeLayout的
机器人:ID =@ + ID / gallery_relative_layout
机器人:layout_width =FILL_PARENT
机器人:layout_height =150dip
机器人:layout_alignParentBottom =真
机器人:方向=横向> < ImageView的
机器人:ID =@ + ID / left_arrow_imageview
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_centerVertical =真
机器人:layout_marginLeft =15dip
机器人:SRC =@绘制/ arrow_left_disabled/> <画廊
机器人:ID =@ + ID /画廊
机器人:layout_width =0dip
机器人:layout_height =150dip
机器人:layout_marginLeft =20dip
机器人:layout_marginRight =20dip
机器人:layout_toLeftOf =@ + ID / right_arrow_imageview
机器人:layout_toRightOf =@ + ID / left_arrow_imageview
机器人:间距=20dip/> < ImageView的
机器人:ID =@ + ID / right_arrow_imageview
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignParentRight =真
机器人:layout_centerVertical =真
机器人:layout_marginRight =15dip
机器人:SRC =@绘制/ arrow_right_enabled/>
< / RelativeLayout的>< / RelativeLayout的>
的Manifest.xml
<?XML版本=1.0编码=UTF-8&GT?;
<清单的xmlns:机器人=http://schemas.android.com/apk/res/android
包=com.gallerydemo
安卓版code =1
机器人:=的versionName1.0> <采用-SDK安卓的minSdkVersion =8/> <应用
机器人:图标=@绘制/ ic_launcher
机器人:标签=@字符串/ APP_NAME>
<活动
机器人:名字=。GalleryDemoActivity
机器人:标签=@字符串/ APP_NAME>
&所述;意图滤光器>
<作用机器人:名字=android.intent.action.MAIN/> <类机器人:名字=android.intent.category.LAUNCHER/>
&所述; /意图滤光器>
< /活性GT;
< /用途>< /清单>
是
图片点击监听器:
ImageView的IMG =(ImageView的)findViewById(R.id.myImageId);
img.setOnClickListener(新OnClickListener(){
公共无效的onClick(视图v){
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(getApplicationContext());
尝试{
位图的位图=((BitmapDrawable)img.getDrawable())getBitmap();
如果(位图!= NULL)
myWallpaperManager.setBitmap(位图);
}赶上(IOException异常五){
// TODO自动生成catch块
e.printStackTrace();
}
}
});
我认为像下面将在code工作:
gallery.setOnItemSelectedListener(新OnItemSelectedListener(){ @覆盖
公共无效onItemSelected(适配器视图<>母公司,观景,INT POS,长ID){ selectedImagePosition = POS; 如果(selectedImagePosition大于0&放大器;&放大器; selectedImagePosition&下; drawables.size() - 1){ leftArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_left_enabled));
rightArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_right_enabled)); }否则如果(selectedImagePosition == 0){ leftArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_left_disabled)); }否则如果(selectedImagePosition == drawables.size() - 1){ rightArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_right_disabled));
} changeBorderForSelectedImage(selectedImagePosition);
setSelectedImage(selectedImagePosition);selectedImageView .setOnClickListener(新OnClickListener(){
公共无效的onClick(视图v){
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(getApplicationContext());
尝试{
位图的位图=((BitmapDrawable)selectedImageView .getDrawable())getBitmap();
如果(位图!= NULL)
myWallpaperManager.setBitmap(位图);
}赶上(IOException异常五){
// TODO自动生成catch块
e.printStackTrace();
}
}
});
}
或类似的东西如下:
gallery.setOnItemSelectedListener(新OnItemSelectedListener(){ @覆盖
公共无效onItemSelected(适配器视图<>母公司,观景,INT POS,长ID){ selectedImagePosition = POS; 如果(selectedImagePosition大于0&放大器;&放大器; selectedImagePosition&下; drawables.size() - 1){ leftArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_left_enabled));
rightArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_right_enabled)); }否则如果(selectedImagePosition == 0){ leftArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_left_disabled)); }否则如果(selectedImagePosition == drawables.size() - 1){ rightArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_right_disabled));
} changeBorderForSelectedImage(selectedImagePosition);
setSelectedImage(selectedImagePosition);ImageView的ImageView的=(ImageView的)gallery.getSelectedView(); imageView.setOnClickListener(新OnClickListener(){
公共无效的onClick(视图v){
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(getApplicationContext());
尝试{
位图的位图=((BitmapDrawable)imageView.getDrawable())getBitmap();
如果(位图!= NULL)
myWallpaperManager.setBitmap(位图);
}赶上(IOException异常五){
// TODO自动生成catch块
e.printStackTrace();
}
}
});
}
请确保您有下面的权限在AndroidManifest.xml中,只是把它下面和上面:
<使用许可权的android:NAME =android.permission.SET_WALLPAPER/>
有关对话框出现,等待3秒来打开它:
gallery.setOnItemSelectedListener(新OnItemSelectedListener(){ @覆盖
公共无效onItemSelected(适配器视图<>母公司,观景,INT POS,长ID){ selectedImagePosition = POS; 如果(selectedImagePosition大于0&放大器;&放大器; selectedImagePosition&下; drawables.size() - 1){ leftArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_left_enabled));
rightArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_right_enabled)); }否则如果(selectedImagePosition == 0){ leftArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_left_disabled)); }否则如果(selectedImagePosition == drawables.size() - 1){ rightArrowImageView.setImageDrawable(getResources()getDrawable(R.drawable.arrow_right_disabled));
} changeBorderForSelectedImage(selectedImagePosition);
setSelectedImage(selectedImagePosition); ImageView的ImageView的=(ImageView的)gallery.getSelectedView(); imageView.setOnClickListener(新OnClickListener(){
公共无效的onClick(视图v){
处理程序处理程序=新的处理程序();
handler.postDelayed(新的Runnable(){ @覆盖
公共无效的run(){ AlertDialog.Builder myAlertDialog =新AlertDialog.Builder(GalleryDemoActivity.this);
myAlertDialog.setTitle(墙纸);
myAlertDialog.setMessage(要设置为墙纸?);
myAlertDialog.setPositiveButton(OK,新DialogInterface.OnClickListener(){ 公共无效的onClick(DialogInterface对话框,INT ARG1){
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(getApplicationContext());
尝试{
位图的位图=((BitmapDrawable)imageView.getDrawable())getBitmap();
如果(位图!= NULL)
myWallpaperManager.setBitmap(位图);
}赶上(IOException异常五){
// TODO自动生成catch块
e.printStackTrace();
}
}});
myAlertDialog.setNegativeButton(取消,新DialogInterface.OnClickListener(){ 公共无效的onClick(DialogInterface对话框,INT ARG1){
dialog.dismiss();
}});
。myAlertDialog.create()显示();
} },3000);
}
});
}
I am new to coding and never worked with it before! I am working on wallpaper application were I created the gallery . I managed to do this , but I want to modify the app so that when user click on specific image It allow them to set as wallpaper. I need some help with this! (Sorry for bad English)
Does anyone know how I should do this? Really thankful for help
Following are my code...
MainActivity .java
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
public class GalleryDemoActivity extends Activity {
private ImageView selectedImageView;
private ImageView leftArrowImageView;
private ImageView rightArrowImageView;
private Gallery gallery;
private int selectedImagePosition = 0;
private List<Drawable> drawables;
private GalleryImageAdapter galImageAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getDrawablesList();
setupUI();
}
private void setupUI() {
selectedImageView = (ImageView) findViewById(R.id.selected_imageview);
leftArrowImageView = (ImageView) findViewById(R.id.left_arrow_imageview);
rightArrowImageView = (ImageView) findViewById(R.id.right_arrow_imageview);
gallery = (Gallery) findViewById(R.id.gallery);
leftArrowImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (selectedImagePosition > 0) {
--selectedImagePosition;
}
gallery.setSelection(selectedImagePosition, false);
}
});
rightArrowImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (selectedImagePosition < drawables.size() - 1) {
++selectedImagePosition;
}
gallery.setSelection(selectedImagePosition, false);
}
});
gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
selectedImagePosition = pos;
if (selectedImagePosition > 0 && selectedImagePosition < drawables.size() - 1) {
leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_enabled));
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_enabled));
} else if (selectedImagePosition == 0) {
leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_disabled));
} else if (selectedImagePosition == drawables.size() - 1) {
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
}
changeBorderForSelectedImage(selectedImagePosition);
setSelectedImage(selectedImagePosition);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
galImageAdapter = new GalleryImageAdapter(this, drawables);
gallery.setAdapter(galImageAdapter);
if (drawables.size() > 0) {
gallery.setSelection(selectedImagePosition, false);
}
if (drawables.size() == 1) {
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
}
}
private void changeBorderForSelectedImage(int selectedItemPos) {
int count = gallery.getChildCount();
for (int i = 0; i < count; i++) {
ImageView imageView = (ImageView) gallery.getChildAt(i);
imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.image_border));
imageView.setPadding(3, 3, 3, 3);
}
ImageView imageView = (ImageView) gallery.getSelectedView();
imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.selected_image_border));
imageView.setPadding(3, 3, 3, 3);
}
private void getDrawablesList() {
drawables = new ArrayList<Drawable>();
drawables.add(getResources().getDrawable(R.drawable.natureimage1));
drawables.add(getResources().getDrawable(R.drawable.natureimage2));
drawables.add(getResources().getDrawable(R.drawable.natureimage3));
drawables.add(getResources().getDrawable(R.drawable.natureimage4));
drawables.add(getResources().getDrawable(R.drawable.natureimage5));
drawables.add(getResources().getDrawable(R.drawable.natureimage6));
drawables.add(getResources().getDrawable(R.drawable.natureimage7));
drawables.add(getResources().getDrawable(R.drawable.natureimage8));
drawables.add(getResources().getDrawable(R.drawable.natureimage9));
drawables.add(getResources().getDrawable(R.drawable.natureimage10));
drawables.add(getResources().getDrawable(R.drawable.natureimage11));
drawables.add(getResources().getDrawable(R.drawable.natureimage12));
drawables.add(getResources().getDrawable(R.drawable.natureimage13));
drawables.add(getResources().getDrawable(R.drawable.natureimage14));
drawables.add(getResources().getDrawable(R.drawable.natureimage15));
}
private void setSelectedImage(int selectedImagePosition) {
BitmapDrawable bd = (BitmapDrawable) drawables.get(selectedImagePosition);
Bitmap b = Bitmap.createScaledBitmap(bd.getBitmap(), (int) (bd.getIntrinsicHeight() * 0.9), (int) (bd.getIntrinsicWidth() * 0.7), false);
selectedImageView.setImageBitmap(b);
selectedImageView.setScaleType(ScaleType.FIT_XY);
}
}
GalleryAdapter. java
import java.util.List;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
public class GalleryImageAdapter extends BaseAdapter {
private Activity context;
private static ImageView imageView;
private List<Drawable> plotsImages;
private static ViewHolder holder;
public GalleryImageAdapter(Activity context, List<Drawable> plotsImages) {
this.context = context;
this.plotsImages = plotsImages;
}
@Override
public int getCount() {
return plotsImages.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
holder = new ViewHolder();
imageView = new ImageView(this.context);
imageView.setPadding(3, 3, 3, 3);
convertView = imageView;
holder.imageView = imageView;
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.imageView.setImageDrawable(plotsImages.get(position));
holder.imageView.setScaleType(ImageView.ScaleType.FIT_XY);
holder.imageView.setLayoutParams(new Gallery.LayoutParams(150, 90));
return imageView;
}
private static class ViewHolder {
ImageView imageView;
}
}
Main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="vertical" >
<ImageView
android:id="@+id/selected_imageview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/gallery_relative_layout"
android:layout_marginLeft="30dip"
android:layout_marginRight="30dip"
android:layout_marginTop="30dip" />
<RelativeLayout
android:id="@+id/gallery_relative_layout"
android:layout_width="fill_parent"
android:layout_height="150dip"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
<ImageView
android:id="@+id/left_arrow_imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dip"
android:src="@drawable/arrow_left_disabled" />
<Gallery
android:id="@+id/gallery"
android:layout_width="0dip"
android:layout_height="150dip"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_toLeftOf="@+id/right_arrow_imageview"
android:layout_toRightOf="@+id/left_arrow_imageview"
android:spacing="20dip" />
<ImageView
android:id="@+id/right_arrow_imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dip"
android:src="@drawable/arrow_right_enabled" />
</RelativeLayout>
</RelativeLayout>
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gallerydemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".GalleryDemoActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Yes.
Image click listener:
ImageView img = (ImageView) findViewById(R.id.myImageId);
img.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(getApplicationContext());
try {
Bitmap bitmap=((BitmapDrawable)img.getDrawable()).getBitmap();
if(bitmap!=null)
myWallpaperManager.setBitmap(bitmap);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
I think something like below would work in your code:
gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
selectedImagePosition = pos;
if (selectedImagePosition > 0 && selectedImagePosition < drawables.size() - 1) {
leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_enabled));
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_enabled));
} else if (selectedImagePosition == 0) {
leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_disabled));
} else if (selectedImagePosition == drawables.size() - 1) {
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
}
changeBorderForSelectedImage(selectedImagePosition);
setSelectedImage(selectedImagePosition);
selectedImageView .setOnClickListener(new OnClickListener() {
public void onClick(View v) {
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(getApplicationContext());
try {
Bitmap bitmap=((BitmapDrawable)selectedImageView .getDrawable()).getBitmap();
if(bitmap!=null)
myWallpaperManager.setBitmap(bitmap);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
or something like below :
gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
selectedImagePosition = pos;
if (selectedImagePosition > 0 && selectedImagePosition < drawables.size() - 1) {
leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_enabled));
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_enabled));
} else if (selectedImagePosition == 0) {
leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_disabled));
} else if (selectedImagePosition == drawables.size() - 1) {
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
}
changeBorderForSelectedImage(selectedImagePosition);
setSelectedImage(selectedImagePosition);
ImageView imageView = (ImageView) gallery.getSelectedView();
imageView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(getApplicationContext());
try {
Bitmap bitmap=((BitmapDrawable)imageView.getDrawable()).getBitmap();
if(bitmap!=null)
myWallpaperManager.setBitmap(bitmap);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
Make sure you have the below permission in your androidManifest.xml, just put it below and above :
<uses-permission android:name="android.permission.SET_WALLPAPER" />
For dialog to appear and wait for 3 sec to open it:
gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
selectedImagePosition = pos;
if (selectedImagePosition > 0 && selectedImagePosition < drawables.size() - 1) {
leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_enabled));
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_enabled));
} else if (selectedImagePosition == 0) {
leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_disabled));
} else if (selectedImagePosition == drawables.size() - 1) {
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
}
changeBorderForSelectedImage(selectedImagePosition);
setSelectedImage(selectedImagePosition);
ImageView imageView = (ImageView) gallery.getSelectedView();
imageView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Handler handler = new Handler();
handler.postDelayed(new Runnable(){
@Override
public void run() {
AlertDialog.Builder myAlertDialog = new AlertDialog.Builder(GalleryDemoActivity.this);
myAlertDialog.setTitle("Wallpaper");
myAlertDialog.setMessage("Want to set as Wallpaper?");
myAlertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(getApplicationContext());
try {
Bitmap bitmap=((BitmapDrawable)imageView.getDrawable()).getBitmap();
if(bitmap!=null)
myWallpaperManager.setBitmap(bitmap);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}});
myAlertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
dialog.dismiss();
}});
myAlertDialog.create().show();
}
}, 3000);
}
});
}
这篇关于如何设置图像壁纸,在图像时用户点击?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!