رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

سلام دوستان خسته نباشید.دوستان من یه پروژه پیدا کردم میخوام بهش یه imageButton اضافه کنم ولی وقتی کد رو اضافه میکنم و روی imageButton میرنم هیچ واکنشی نشون نمیده لطفا اگر میشه یه نگاه به کد بندازید و راهنماییم کنید که کد imageButtonرو کجای کد پایین بزارم که کار کنه.

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import com.android.waller.R;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.assist.SimpleImageLoadingListener;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.solodroid.materialwallpaper.DatabaseHandler.DatabaseManager;

import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;

public class SlideImageActivity extends ActionBarActivity implements SensorEventListener {

int position;
String[] mAllImages,mAllImageCatName,mAllItemId;

public DatabaseHandler db;
ImageView vp_imageview;
ViewPager viewpager;
int TOTAL_IMAGE;
 	private SensorManager sensorManager;
private boolean checkImage = false;
private long lastUpdate;
Handler handler;
Runnable Update;
boolean Play_Flag=false;
private Menu menu;
private DatabaseManager dbManager;
String  Image_catName,Image_Url;
Bitmap bgr;
DisplayImageOptions options;
private AdView mAdView;
Toolbar toolbar;
 
@Override
public void onCreate(Bundle savedInstanceState) {
	// TODO Auto-generated method stub
	super.onCreate(savedInstanceState);
        setContentView(R.layout.image_slider);

        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);
	getSupportActionBar().setTitle("Gallery");

	db = new DatabaseHandler(this);
	dbManager = DatabaseManager.INSTANCE;
	dbManager.init(getApplicationContext());

	options = new DisplayImageOptions.Builder()
	.showImageForEmptyUri(R.drawable.ic_launcher)
	.showImageOnFail(R.drawable.ic_launcher)
	.resetViewBeforeLoading(true)
	.cacheOnDisc(true)
	.imageScaleType(ImageScaleType.EXACTLY)
	.bitmapConfig(Bitmap.Config.RGB_565)
	.considerExifParams(true)
	.displayer(new FadeInBitmapDisplayer(300))
	.build();
 
	//setTitle(Constant.CATEGORY_TITLE);
	  // Look up the AdView as a resource and load a request.
	 mAdView = (AdView) findViewById(R.id.adView);
     mAdView.loadAd(new AdRequest.Builder().build());
	 
	Intent i=getIntent();
	position=i.getIntExtra("POSITION_ID", 0);
	mAllImages=i.getStringArrayExtra("IMAGE_ARRAY");
 		mAllImageCatName=i.getStringArrayExtra("IMAGE_CATNAME");
 		mAllItemId=i.getStringArrayExtra("ITEMID");
 		 
	TOTAL_IMAGE=mAllImages.length-1;
	viewpager=(ViewPager)findViewById(R.id.image_slider);
	handler=new Handler();

	 ImagePagerAdapter adapter = new ImagePagerAdapter();
	 viewpager.setAdapter(adapter);
	 viewpager.setCurrentItem(position);
	 
	 sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
	 lastUpdate = System.currentTimeMillis();
	 
 		 viewpager.setOnPageChangeListener(new OnPageChangeListener() {

		@Override
		public void onPageSelected(int position) {
			// TODO Auto-generated method stub

			position=viewpager.getCurrentItem();
			Image_Url=mAllImages[position];

			List pojolist=db.getFavRow(Image_Url);
			if(pojolist.size()==0)
			{
				 menu.getItem(0).setIcon(getResources().getDrawable(R.drawable.ic_star_outline));
			}
			else
			{	
				if(pojolist.get(0).getImageurl().equals(Image_Url))
				{
					 menu.getItem(0).setIcon(getResources().getDrawable(R.drawable.ic_star_white));
				}

			}
 				
		}

		@Override
		public void onPageScrolled(int arg0, float arg1, int position) {
			// TODO Auto-generated method stub
			 
 			}

		@Override
		public void onPageScrollStateChanged(int position) {
			// TODO Auto-generated method stub

 			}
	});
	  
}
 	
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.photo_menu, menu);
        this.menu = menu;
        //for when 1st item of view pager is favorite mode
        FirstFav();
        return super.onCreateOptionsMenu(menu);
    }
 
@Override
public boolean onOptionsItemSelected(MenuItem menuItem)
{       
	switch (menuItem.getItemId()) 
        {
        case android.R.id.home: 
            onBackPressed();
            return true;
        
        case R.id.menu_back:
        	
        	position=viewpager.getCurrentItem();
		position--;
		if (position < 0) {
			position = 0;
		}
		viewpager.setCurrentItem(position);
            	 
        	return true;
        	
        case R.id.menu_next:
        	
       	 position=viewpager.getCurrentItem();
		  position++;
		if (position == TOTAL_IMAGE) {
			position = TOTAL_IMAGE;
		}
		viewpager.setCurrentItem(position);
      	 
       	return true;	
       	
        
        	
        case R.id.menu_fav:
        	
        	position=viewpager.getCurrentItem();
        	
        	Image_Url=mAllImages[position];
        
		List pojolist=db.getFavRow(Image_Url);
		if(pojolist.size()==0)
		{
			AddtoFav(position);//if size is zero i.e means that record not in database show add to favorite 
		}
		else
		{	
			if(pojolist.get(0).getImageurl().equals(Image_Url))
			{
				RemoveFav(position);
			}

		}

		return true;	

        case R.id.menu_share:
        	
        	position=viewpager.getCurrentItem();
        	
        	(new ShareTask(SlideImageActivity.this)).execute(Constant.SERVER_IMAGE_DETAILS+mAllImages[position]);
        		
        	 
        	return true;	
            
        case R.id.menu_save:
        	
        	position=viewpager.getCurrentItem();
        	
        	(new SaveTask(SlideImageActivity.this)).execute(Constant.SERVER_IMAGE_DETAILS+mAllImages[position]);
        	
        	return true;
        	
        case R.id.menu_setaswallaper:
        	
        	position=viewpager.getCurrentItem();
        	Intent intwall=new Intent(getApplicationContext(),SetAsWallpaperActivity.class);
        	intwall.putExtra("WALLPAPER_IMAGE_URL", mAllImages);
        	intwall.putExtra("WALLPAPER_IMAGE_CATEGORY", mAllImageCatName);
        	intwall.putExtra("POSITION_ID", position);
        	startActivity(intwall);
   
        	return true;
      
        case R.id.menu_zoom:
        	position=viewpager.getCurrentItem();
        	Intent intzoom=new Intent(getApplicationContext(),PinchZoom.class);
        	intzoom.putExtra("ZOOM_IMAGE_URL", mAllImages);
        	intzoom.putExtra("ZOOM_IMAGE_CATEGORY", mAllImageCatName);
        	intzoom.putExtra("POSITION_ID", position);
        	startActivity(intzoom);
        	
        	return true;
        	
        default:
            return super.onOptionsItemSelected(menuItem);
        }
        
}

//add to favorite 
 	public void AddtoFav(int position)
{
	 
    	Image_catName=mAllImageCatName[position];
    	Image_Url=mAllImages[position];
 
    	db.AddtoFavorite(new Pojo(Image_catName, Image_Url));
    	Toast.makeText(getApplicationContext(), "Added to Favorite", Toast.LENGTH_SHORT).show();
    	menu.getItem(0).setIcon(getResources().getDrawable(R.drawable.ic_star_white));
}

//remove from favorite
public void RemoveFav(int position)
{
	Image_Url=mAllImages[position];
	db.RemoveFav(new Pojo(Image_Url));
	Toast.makeText(getApplicationContext(), "Removed from Favorite", Toast.LENGTH_SHORT).show();
	menu.getItem(0).setIcon(getResources().getDrawable(R.drawable.ic_star_outline));

}


//auto play slide show

public void AutoPlay()
{
	Update=new Runnable() {

		@Override
		public void run() {
			AutoPlay();
			// TODO Auto-generated method stub
			 position=viewpager.getCurrentItem();
			  position++;
			if (position == TOTAL_IMAGE) {
				position = TOTAL_IMAGE;
				 handler.removeCallbacks(Update);//when last image play mode goes to Stop
				 Toast.makeText(getApplicationContext(), "Last Image Auto Play Stoped", Toast.LENGTH_SHORT).show();
				 menu.getItem(0).setIcon(getResources().getDrawable(R.drawable.ic_play));
				 Play_Flag=false;
				 //Show All Menu when Auto Play Stop
				ShowMenu();
			}
			viewpager.setCurrentItem(position);

		}
	};

	handler.postDelayed(Update, 1500);
}

public void ShowMenu()
{
	 menu.getItem(0).setVisible(true);
	 menu.getItem(2).setVisible(true);
	 menu.getItem(0).setVisible(true);
	 menu.getItem(4).setVisible(true);
}

public void HideMenu()
{
	menu.getItem(0).setVisible(false);
	menu.getItem(2).setVisible(false);
	menu.getItem(0).setVisible(false);
	menu.getItem(4).setVisible(false);
}

public void FirstFav()
{
	int first=viewpager.getCurrentItem();
	String Image_id=mAllImages[first];

	List pojolist=db.getFavRow(Image_id);
	if(pojolist.size()==0)
	{
		 menu.getItem(0).setIcon(getResources().getDrawable(R.drawable.ic_star_outline));
		 
	}
	else
	{	
		if(pojolist.get(0).getImageurl().equals(Image_id))
		{
			 menu.getItem(0).setIcon(getResources().getDrawable(R.drawable.ic_star_white));
			 
		}

	}
}
private class ImagePagerAdapter extends PagerAdapter {

	private LayoutInflater inflater;

	public ImagePagerAdapter() {
		// TODO Auto-generated constructor stub

		inflater = getLayoutInflater();
	}

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

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

    @Override
    public Object instantiateItem(ViewGroup container, int position) {

    	View imageLayout = inflater.inflate(R.layout.viewpager_item, container, false);
	  	assert imageLayout != null;
	  	ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image);
		final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading);
	  	 
		 ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(getApplicationContext()));
		 ImageLoader.getInstance().displayImage(Constant.SERVER_IMAGE_DETAILS+mAllImages[position], 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;
					}
					Toast.makeText(SlideImageActivity.this, message, Toast.LENGTH_SHORT).show();

					spinner.setVisibility(View.GONE);
				}

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

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

@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
	// TODO Auto-generated method stub

}


@Override
public void onSensorChanged(SensorEvent event) {
	// TODO Auto-generated method stub

	 if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
	      getAccelerometer(event);
	    }

}
 private void getAccelerometer(SensorEvent event) {
	    float[] values = event.values;
	    // Movement
	    float x = values[0];
	    float y = values[1];
	    float z = values[2];

	    float accelationSquareRoot = (x * x + y * y + z * z)
	        / (SensorManager.GRAVITY_EARTH * SensorManager.GRAVITY_EARTH);
	    long actualTime = System.currentTimeMillis();
	    if (accelationSquareRoot >= 2) //
	    {
	      if (actualTime - lastUpdate < 200) {
	        return;
	      }
	      lastUpdate = actualTime;
//		      Toast.makeText(this, "Device was shuffed", Toast.LENGTH_SHORT)
//		          .show();
	      if (checkImage) {
	       
	    	  
	    	  position=viewpager.getCurrentItem();
	    	  viewpager.setCurrentItem(position);


	      } else {
	    	  
	    	  position=viewpager.getCurrentItem();
			  position++;
			if (position == TOTAL_IMAGE) {
				position = TOTAL_IMAGE;
			}
			viewpager.setCurrentItem(position);
	      }
	      checkImage = !checkImage;
	    }
	  }

	  
	  @Override
	  protected void onResume() {
	    super.onResume();
	    // register this class as a listener for the orientation and
	    // accelerometer sensors
	    if(dbManager == null){
			dbManager = DatabaseManager.INSTANCE;
			dbManager.init(getApplicationContext());
			}else if(dbManager.isDatabaseClosed()){
			dbManager.init(getApplicationContext());
			}
	    sensorManager.registerListener(this,
	        sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
	        SensorManager.SENSOR_DELAY_NORMAL);
	  }

	  @Override
	  protected void onPause() {
	    // unregister listener
	    super.onPause();
	    if(!dbManager.isDatabaseClosed())
			dbManager.closeDatabase();
	    sensorManager.unregisterListener(this);
	  }
		@Override
		public void onDestroy() {
			super.onDestroy();
			 handler.removeCallbacks(Update);
			 sensorManager.unregisterListener(this);
			 if(dbManager != null)dbManager.closeDatabase();

		}	

		public class SaveTask extends AsyncTask
		{
		    private Context context;
		    private ProgressDialog pDialog;
		    String image_url;
		    URL myFileUrl;
		    String myFileUrl1;
		    Bitmap bmImg = null;
		    File file ;

		    public SaveTask(Context context) {
		        this.context = context;
		    }

		    @Override
		    protected void onPreExecute() {
		        // TODO Auto-generated method stub

		        super.onPreExecute();

		        pDialog = new ProgressDialog(context);
		        pDialog.setMessage("Downloading Image ...");
		        pDialog.setIndeterminate(false);
		        pDialog.setCancelable(false);
		        pDialog.show();

		    }

		    @Override
		    protected String doInBackground(String... args) {
		        // TODO Auto-generated method stub

		        try {  

		            myFileUrl = new URL(args[0]);
		            //myFileUrl1 = args[0];

		            HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();   
		            conn.setDoInput(true);   
		            conn.connect();     
		            InputStream is = conn.getInputStream();
		            bmImg = BitmapFactory.decodeStream(is); 
		        }
		        catch (IOException e)
		        {       
		            e.printStackTrace();  
		        }
		        try {       

		            String path = myFileUrl.getPath();
		            String idStr = path.substring(path.lastIndexOf('/') + 1);
		            File filepath = Environment.getExternalStorageDirectory();
		            File dir = new File (filepath.getAbsolutePath() + "/Android Wallpaper/");
		            dir.mkdirs();
		            String fileName = idStr;
		            file = new File(dir, fileName);
		            FileOutputStream fos = new FileOutputStream(file);
		            bmImg.compress(CompressFormat.JPEG, 75, fos);   
		            fos.flush();    
		            fos.close();    

		        }
		        catch (Exception e)
		                {
		                    e.printStackTrace();  
		                }
		        return null;   
		    }


		    @Override
		    protected void onPostExecute(String args) {
		        // TODO Auto-generated method stub
		    	Toast.makeText(SlideImageActivity.this, "Image Saved Succesfully Android Wallpaper Folder/", Toast.LENGTH_SHORT).show();
		        pDialog.dismiss();
		    }
		}

public class ShareTask extends AsyncTask
		{
		    private Context context;
		    private ProgressDialog pDialog;
		    String image_url;
		    URL myFileUrl;
		    String myFileUrl1;
		    Bitmap bmImg = null;
		    File file ;

		    public ShareTask(Context context) {
		        this.context = context;
		    }

		    @Override
		    protected void onPreExecute() {
		        // TODO Auto-generated method stub

		        super.onPreExecute();

		        pDialog = new ProgressDialog(context);
		        pDialog.setMessage("Please Wait ...");
		        pDialog.setIndeterminate(false);
		        pDialog.setCancelable(false);
		        pDialog.show();

		    }

		    @Override
		    protected String doInBackground(String... args) {
		        // TODO Auto-generated method stub

		        try {  

		            myFileUrl = new URL(args[0]);
		            //myFileUrl1 = args[0];

		            HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();   
		            conn.setDoInput(true);   
		            conn.connect();     
		            InputStream is = conn.getInputStream();
		            bmImg = BitmapFactory.decodeStream(is); 
		        }
		        catch (IOException e)
		        {       
		            e.printStackTrace();  
		        }
		        try {       

		            String path = myFileUrl.getPath();
		            String idStr = path.substring(path.lastIndexOf('/') + 1);
		        File filepath = Environment.getExternalStorageDirectory();
		        File dir = new File (filepath.getAbsolutePath() + "/Android Wallpaper/");
		            dir.mkdirs();
		            String fileName = idStr;
		            file = new File(dir, fileName);
		            FileOutputStream fos = new FileOutputStream(file);
		            bmImg.compress(CompressFormat.JPEG, 75, fos);   
		            fos.flush();    
		            fos.close();    

		        }
		        catch (Exception e)
		                {
		                    e.printStackTrace();  
		                }
		        return null;   
		    }


		    @Override
		    protected void onPostExecute(String args) {
		        // TODO Auto-generated method stub
		    	
		    	Intent share = new Intent(Intent.ACTION_SEND);
				share.setType("image/jpeg");
				share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getAbsolutePath()));
				startActivity(Intent.createChooser(share, "Share Image"));
		        pDialog.dismiss();
		    }
		}		

}

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...