rezaeade 1 ارسال شده در ۱۷ مهر ۱۳۹۵ گزارش اشتراک گذاری ارسال شده در ۱۷ مهر ۱۳۹۵ سلام دوستان خسته نباشید.دوستان من یه پروژه پیدا کردم میخوام بهش یه 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(); } } } نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .