android Fragment和FragmentActivity

MainActivity.java




import android.app.AlertDialog; import android.app.Notification; import android.content.DialogInterface; import android.content.Intent; import android.content.res.Resources; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; import com.baidu.android.pushservice.CustomPushNotificationBuilder; import com.baidu.android.pushservice.PushConstants; import com.baidu.android.pushservice.PushManager; import com.example.newpingziyi.push.Utils; import com.example.newpingziyi.stir.WebViews; import com.example.newpingziyi.system.SettingActivity; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; public class MainActivity extends FragmentActivity { private ViewPager mPager; private TextView tv_find; private TextView tv_my_file; private TextView mainhead; private SlidingMenu slidingMenu; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Utils.logStringCache = Utils.getLogText(getApplicationContext()); Resources resource = this.getResources(); String pkgName = this.getPackageName(); // PushManager.startWork(getApplicationContext(), // PushConstants.LOGIN_TYPE_API_KEY, // Utils.getMetaValue(MainActivity.this, "api_key")); findView(); init(); if (!Utils.hasBind(getApplicationContext())) { PushManager.startWork(getApplicationContext(), PushConstants.LOGIN_TYPE_API_KEY, Utils.getMetaValue(MainActivity.this, "api_key")); // Push: 如果想基于地理位置推送,可以打开支持地理位置的推送的开关 PushManager.enableLbs(getApplicationContext()); } CustomPushNotificationBuilder cBuilder = new CustomPushNotificationBuilder( getApplicationContext(), resource.getIdentifier( "notification_custom_builder", "layout", pkgName), resource.getIdentifier("notification_icon", "id", pkgName), resource.getIdentifier("notification_title", "id", pkgName), resource.getIdentifier("notification_text", "id", pkgName)); cBuilder.setNotificationFlags(Notification.FLAG_AUTO_CANCEL); cBuilder.setNotificationDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE); cBuilder.setStatusbarIcon(this.getApplicationInfo().icon); cBuilder.setLayoutDrawable(resource.getIdentifier("logo_notification", "drawable", pkgName)); PushManager.setNotificationBuilder(this, 1, cBuilder); } private void findView() { mPager = (ViewPager) findViewById(R.id.vPager); tv_find = (TextView) findViewById(R.id.tv_find); tv_my_file = (TextView) findViewById(R.id.tv_my_file); mainhead = (TextView) findViewById(R.id.main_head); tv_find.setOnClickListener(new MyOnClickListener(0)); tv_my_file.setOnClickListener(new MyOnClickListener(1)); mainhead.setOnClickListener(new View.OnClickListener() { int version = Integer.valueOf(android.os.Build.VERSION.SDK); @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, WebViews.class); startActivity(intent); if (version >= 5) { MainActivity.this.overridePendingTransition( R.anim.push_left_in, R.anim.push_left_out); } } }); } private void init() { mPager.setAdapter(new ContentPagerAdapter(getSupportFragmentManager())); mPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { setCurrentPage(position); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { // ignore } public void onPageScrollStateChanged(int state) { // ignore } }); slidingMenu = new SlidingMenu(MainActivity.this); slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); slidingMenu.setShadowDrawable(R.drawable.shadow_right); slidingMenu.setShadowWidth(getWindowManager().getDefaultDisplay() .getWidth() / 40); // slidingMenu.setShadowWidth(20); // slidingMenu.setBehindOffset(40); slidingMenu.setBehindOffset(getWindowManager().getDefaultDisplay() .getWidth() / 5); slidingMenu.setMode(SlidingMenu.LEFT); slidingMenu.setFadeEnabled(true); slidingMenu.setFadeDegree(0.4f); slidingMenu.setBehindScrollScale(0); slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); slidingMenu.setSlidingEnabled(true); slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); slidingMenu.setMenu(R.layout.menu_frame); FragmentManager fm = getSupportFragmentManager(); fm.beginTransaction().replace(R.id.menu_frame, new SettingActivity()) .commit(); } @Override public void onBackPressed() { if (slidingMenu != null && slidingMenu.isMenuShowing()) { slidingMenu.showContent(); } else { super.onBackPressed(); } } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_MENU) { slidingMenu.toggle(); return true; } else if (keyCode == KeyEvent.KEYCODE_BACK) { AlertDialog isExit = new AlertDialog.Builder(this).create(); isExit.setTitle("系统提示"); isExit.setMessage("确定要退出吗"); isExit.setButton("确定", listener); isExit.setButton2("取消", listener); isExit.show(); } return super.onKeyDown(keyCode, event); } DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { switch (which) { case AlertDialog.BUTTON_POSITIVE: Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); System.exit(0); break; case AlertDialog.BUTTON_NEGATIVE: break; default: break; } } }; private void setCurrentPage(int current) { if (current == 0) { tv_find.setTextColor(getResources().getColor(R.color.green)); tv_my_file.setTextColor(getResources().getColor(R.color.grey)); slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); } else { tv_my_file.setTextColor(getResources().getColor(R.color.green)); tv_find.setTextColor(getResources().getColor(R.color.grey)); slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); } } private class MyOnClickListener implements OnClickListener { private int index = 0; public MyOnClickListener(int i) { index = i; } public void onClick(View v) { mPager.setCurrentItem(index); } } @Override public void onStart() { super.onStart(); } @Override public void onResume() { super.onResume(); } @Override public void onStop() { super.onStop(); } @Override public void onDestroy() { Utils.setLogText(getApplicationContext(), Utils.logStringCache); super.onDestroy(); } }

  MenuItem.java

主页面的一些菜单

public class MenuItem {

	public int menuIconRes;

	public String menuTitle;

	public String menuMsg;



	public MenuItem(int menuIconRes, String menuTitle, String menuMsg) {

		this.menuIconRes = menuIconRes;

		this.menuTitle = menuTitle;

		this.menuMsg = menuMsg;

	}

  MenuItemAdapter.java

菜单的适配器

public class MenuItemAdapter extends BaseAdapter {



	private List<MenuItem> menus;

	private LayoutInflater inflater;

	private int margin;



	public MenuItemAdapter(Context context, List<MenuItem> menus, int margin) {

		inflater = LayoutInflater.from(context);

		this.menus = menus;

		this.margin = margin;

	}



	@Override

	public int getCount() {

		return menus.size();

	}



	@Override

	public Object getItem(int position) {

		return menus.get(position);

	}



	@Override

	public long getItemId(int position) {

		return position;

	}



	@Override

	public View getView(int position, View convertView, ViewGroup parent) {

		int height = parent.getHeight() / 3 - margin;

		AbsListView.LayoutParams param = new AbsListView.LayoutParams(

				LayoutParams.MATCH_PARENT, height);

		ViewHolder holder = null;

		if (convertView == null) {

			convertView = inflater.inflate(R.layout.menu_item, parent, false);

			holder = new ViewHolder();

			holder.iv_menuIcon = (ImageView) convertView

					.findViewById(R.id.iv_menu_icon);

			holder.tv_menuTitle = (TextView) convertView

					.findViewById(R.id.tv_menu_title);

			holder.tv_menuMsg = (TextView) convertView

					.findViewById(R.id.tv_menu_msg);

			convertView.setTag(holder);

		} else {

			holder = (ViewHolder) convertView.getTag();

		}

		MenuItem item = menus.get(position);

		holder.iv_menuIcon.setImageResource(item.menuIconRes);

		holder.tv_menuTitle.setText(item.menuTitle);

		if (item.menuMsg.length() == 0) {

			holder.tv_menuMsg.setVisibility(View.GONE);

		} else {

			holder.tv_menuMsg.setVisibility(View.VISIBLE);

			holder.tv_menuMsg.setText(item.menuMsg);

		}

		convertView.setLayoutParams(param);

		return convertView;

	}



	private class ViewHolder {

		ImageView iv_menuIcon;

		TextView tv_menuTitle;

		TextView tv_menuMsg;

	}



}

  FindFragment.java

主页面Fragment

public class FindFragment extends Fragment implements OnItemClickListener {

	private static final String SAVED_IMAGE_DIR_PATH = "photo_path";

	private static final int SELECT_PIC_BY_TACK_PHOTO = 1;

	private static final int SELECT_PIC_BY_PICK_PHOTO = 2;

	private static final String TAG = "FindFragment";

	private SharedPreferences preferences;

	private GridView gv_menu;

	private String picPath;

	private Uri photoUri;

	private String user;

	private FindFragment mFragment;



	@Override

	public void onResume() {

		super.onResume();

	}



	@Override

	public void onPause() {

		super.onPause();

	}



	@Override

	public View onCreateView(LayoutInflater inflater, ViewGroup container,

			Bundle savedInstanceState) {

		View view = inflater.inflate(R.layout.fragment_find, container, false);

		findView(view);

		init();

		return view;

	}



	private void findView(View v) {

		gv_menu = (GridView) v.findViewById(R.id.gv_menu);

		gv_menu.setOnItemClickListener(this);

		preferences = getActivity().getSharedPreferences("UserInfo",

				getActivity().MODE_PRIVATE);

		user = preferences.getString("NAME", user);

	}



	private void init() {

		List<MenuItem> menus = new ArrayList<MenuItem>();

		menus.add(new MenuItem(R.drawable.msg, "消息", "最新情报"));

		menus.add(new MenuItem(R.drawable.servicer, "服务", "服务与产品"));

		menus.add(new MenuItem(R.drawable.take_photo, "拍照上传", ""));

		menus.add(new MenuItem(R.drawable.pick_photo, "相册上传", ""));

		menus.add(new MenuItem(R.drawable.share, "分享", "推荐给朋友"));

		menus.add(new MenuItem(R.drawable.teapot, "泡茶", "即将开启你的私人助手"));



		int margin = (int) (getResources().getDisplayMetrics().density * 14 * 13 / 9);

		MenuItemAdapter adapter = new MenuItemAdapter(getActivity(), menus,

				margin);

		gv_menu.setAdapter(adapter);

	}



	private int[] menu = { R.drawable.msg, R.drawable.servicer,

			R.drawable.take_photo, R.drawable.pick_photo, R.drawable.share,

			R.drawable.teapot };



	@Override

	public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

		switch (menu[position]) {

		case R.drawable.msg:

			Intent msg = new Intent(getActivity(), StirActivity.class);

			startActivity(msg);

			translate();

			break;



		case R.drawable.servicer:

			Intent mWeb = new Intent(getActivity(), WebService.class);

			startActivity(mWeb);

			translate();

			break;

		case R.drawable.teapot:

			// Intent set = new Intent(getActivity(), SettingActivity.class);

			// startActivity(set);

			Toast.makeText(getActivity(), R.string.pending, 1).show();

			break;

		case R.drawable.take_photo:

			if (user != null) {

				takePhoto();

				translate();

			} else {

				login();

			}

			break;

		case R.drawable.pick_photo:

			if (user != null) {

				pickPhoto();

				translate();

			} else {

				login();

			}

			break;

		case R.drawable.share:

			Intent share = new Intent(Intent.ACTION_SEND);

			share.setType("text/plain");

			share.putExtra(Intent.EXTRA_SUBJECT, R.string.main_share);

			share.putExtra(Intent.EXTRA_TEXT, R.string.main_share_content);

			startActivity(share.createChooser(share, getActivity().getTitle()));

			break;

		}

	}



	// takePhoto

	private void takePhoto() {

		String SDState = Environment.getExternalStorageState();

		if (SDState.equals(Environment.MEDIA_MOUNTED)) {



			Intent intent = new Intent(

					android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

			intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

			ContentValues values = new ContentValues();

			photoUri = getActivity().getContentResolver().insert(

					MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

			intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, photoUri);

			startActivityForResult(intent, SELECT_PIC_BY_TACK_PHOTO);

			if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {

				Toast.makeText(getActivity(), R.string.take_photo_rem, 1)

						.show();

			}

		} else {

			Toast.makeText(getActivity(), R.string.takePhoto_msg, 1).show();

		}

	}



	// pickPhoto

	private void pickPhoto() {

		Intent intent = new Intent();

		intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

		intent.setType("image/*");

		intent.setAction(Intent.ACTION_GET_CONTENT);

		startActivityForResult(intent, SELECT_PIC_BY_PICK_PHOTO);

	}



	public void onActivityResult(int requestCode, int resultCode, Intent data) {

		if (resultCode == Activity.RESULT_OK) {

			switch (requestCode) {

			case SELECT_PIC_BY_PICK_PHOTO:

				if (data != null) {

					photoUri = data.getData();

					String[] pojo = { MediaStore.Images.Media.DATA };

					Cursor cursor = getActivity().getContentResolver().query(

							photoUri, pojo, null, null, null);

					if (cursor != null) {

						int columnIndex = cursor.getColumnIndexOrThrow(pojo[0]);

						cursor.moveToLast();

						picPath = cursor.getString(columnIndex);

						try {

							if (Integer.parseInt(Build.VERSION.SDK) < 14) {

								cursor.close();

							}

						} catch (Exception e) {

							Log.e(TAG, "error:" + e);

						}

					}

				} else {

					Toast.makeText(getActivity(), R.string.photo_err, 1).show();

					return;

				}

				break;

			case SELECT_PIC_BY_TACK_PHOTO:

				if (photoUri != null) {

					String[] pojo = { MediaStore.Images.Media.DATA };

					Cursor cursor = getActivity().getContentResolver().query(

							photoUri, pojo, null, null, null);

					if (cursor != null) {

						int columnIndex = cursor.getColumnIndexOrThrow(pojo[0]);

						cursor.moveToLast();

						picPath = cursor.getString(columnIndex);

						try {

							if (Integer.parseInt(Build.VERSION.SDK) < 14) {

								cursor.close();

							}

						} catch (Exception e) {

							Log.e(TAG, "error:" + e);

						}

					}

				} else {

					Toast.makeText(getActivity(), R.string.tackphoto_err, 1)

							.show();

					return;

				}



				break;

			default:

				break;

			}

			if (picPath != null) {

				Intent startEx = new Intent(getActivity(), PhotoPre.class);

				startEx.putExtra(SAVED_IMAGE_DIR_PATH, picPath);

				startActivity(startEx);

			} else {

				Toast.makeText(getActivity(), R.string.photo_err, 1).show();

			}

		}

		super.onActivityResult(requestCode, resultCode, data);

	}



	private void translate() {

		int version = Integer.valueOf(android.os.Build.VERSION.SDK);

		if (version >= 5) {

			getActivity().overridePendingTransition(R.anim.push_left_in,

					R.anim.push_left_out);

		}

	}



	private void login() {

		Toast toast = Toast.makeText(getActivity(), R.string.on_login, 1);

		toast.setGravity(Gravity.CENTER, 0, 0);

		toast.show();

		new Handler().postDelayed(new Runnable() {

			public void run() {

				Intent login = new Intent(getActivity(), Login.class);

				startActivity(login);

				translate();

			}

		}, 1500);

	}

  CheckSdcard.java

次页面:

public class CheckSdcard extends Fragment implements OnItemClickListener,

		OnItemLongClickListener {

	private ListView sdcardImages;

	private ImageButton img_btn;

	private ImageAdapter imageAdapter;

	private Display display;

	private ArrayList<LoadedImage> mPhotos = new ArrayList<LoadedImage>();

	private String ftpPath = "/";

	private String user;

	private String localPath = Environment.getExternalStorageDirectory()

			+ "/pingziyi";

	private TextView mTextView;

	



	private PopupWindow popupWindow = null;

	private int screenWidth = 0;

	private int screenHeight = 0;

	private int popupWindowWidth = 0;

	private int popupWindowHeight = 0;

	private TextView layout_check;

	private TextView layout_delete;

	private View convertview;

	private boolean running;

	private ProgressWheel pw_two;;



	public View onCreateView(LayoutInflater inflater, ViewGroup container,

			Bundle savedInstanceState) {

		View view = inflater.inflate(R.layout.share_photo, container, false);

		connect();

		setupViews(view);

		if (connect() == true) {

			if (checkFile() == true) {

				loadImages();

			}

		}

		return view;

	}



	public boolean checkFile() {

		File file = new File(localPath + "/");

		File[] f = file.listFiles();

		if (f != null && f.length > 0) {

			return true;

		} else {

			return false;

		}

	}



	public void onDestroy() {

		super.onDestroy();

	}



	private boolean connect() {

		new Thread(new Runnable() {

			ContinueFTP ftp = new PhotoPre.ContinueFTP();



			public void run() {

				Looper.prepare();

				ftp = new PhotoPre.ContinueFTP();

				try {

					ftp.connect("125.88.22.1x7", 21, "xxxx", "&xxxx,");

					List<String> path = new ArrayList<String>();

					path = ftp.getListFiles(ftpPath);

					boolean sdCardExist = Environment.getExternalStorageState()

							.equals(android.os.Environment.MEDIA_MOUNTED);

					if (!sdCardExist) {

						Toast.makeText(getActivity(), R.string.insert_sdcard,

								Toast.LENGTH_SHORT).show();

					} else {

						File dir = new File(localPath + "/");

						if (!dir.exists()) {

							dir.mkdir();

						}

					}

					for (String str : path) {

						String filename = str;

						String result = filename.substring(

								filename.indexOf("_") + 1,

								filename.indexOf("."));

						SharedPreferences sp = getActivity()

								.getSharedPreferences("UserInfo",

										getActivity().MODE_PRIVATE);

						user = sp.getString("NAME", user);

						try {

							Thread.sleep(200);

						} catch (InterruptedException e) {

							e.printStackTrace();

						}

						if (result.equals(user)) {

							String remote = ftpPath + str;

							String remotelocal = localPath + "/" + str;



							ftp.download(remote, remotelocal);

						}

					}



				} catch (IOException e) {

					e.printStackTrace();

				}

			}

		}).start();

		return true;

	}



	private void setupViews(View view) {

		sdcardImages = (ListView) view.findViewById(R.id.list_share);

		img_btn = (ImageButton) view.findViewById(R.id.reflesh);

		mTextView = (TextView) view.findViewById(R.id.no_pic);

		pw_two = (ProgressWheel) view.findViewById(R.id.progressbartwo);

		img_btn.setOnClickListener(new RefreshButton());

		sdcardImages.setOnItemClickListener(this);

		sdcardImages.setOnCreateContextMenuListener(new DeleteItem());

		sdcardImages.setOnItemLongClickListener(this);

		sdcardImages.setClipToPadding(false);

		imageAdapter = new ImageAdapter(getActivity());

		sdcardImages.setAdapter(imageAdapter);

		imageAdapter.notifyDataSetChanged();

		sdcardImages.setEmptyView(mTextView);



	}



	private class DeleteItem implements OnCreateContextMenuListener {



		@Override

		public void onCreateContextMenu(ContextMenu menu, View v,

				ContextMenuInfo menuInfo) {

			menu.add(0, 0, 0, "查看");

			menu.add(0, 1, 0, "删除");

		}



	};



	@SuppressLint("NewApi")

	public boolean onContextItemSelected(MenuItem item) {

		AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item

				.getMenuInfo();

		int itemId = item.getItemId();

		int pos = (int) imageAdapter.getItemId(menuInfo.position);

		String path = imageAdapter.getPhoto().get(pos).getPath();

		final String filename = imageAdapter.getPhoto().get(pos).getName();

		System.out.println("filename---------ftp-----" + filename);

		switch (itemId) {

		case 0:

			LayoutInflater inflater = LayoutInflater.from(getActivity());

			System.out.println("path-------" + path);

			Bitmap bm = BitmapFactory.decodeFile(path);

			if (bm != null) {

				View img = inflater.inflate(R.layout.dialog_view, null);

				ImageView view = (ImageView) img.findViewById(R.id.imgView);

				final AlertDialog dialog = new AlertDialog.Builder(

						getActivity(), R.style.Translucent_NoTitle).create();

				view.setImageBitmap(bm);

				dialog.setView(img);

				dialog.show();



				view.setOnClickListener(new OnClickListener() {

					@Override

					public void onClick(View v) {

						dialog.cancel();

					}

				});

			} else {

				Toast.makeText(getActivity(), "没有图片可以浏览!", 1).show();

			}

			break;



		case 1:

			mPhotos.remove(pos);

			imageAdapter.notifyDataSetChanged();

			sdcardImages.invalidate();

			File f = new File(path);

			f.delete();

			new Thread(new Runnable() {

				@Override

				public void run() {

					Looper.prepare();

					try {

						ftp.connect("125.88.22.1x7", 21, "xxxx",

								"&xxxxx,");

						ftp.deleteLoadFile("/" + filename);

						Toast.makeText(getActivity(), "图片删除成功!", 1).show();

					} catch (IOException e) {

						Toast.makeText(getActivity(), "图片删除失败!", 1).show();

						e.printStackTrace();

					}

				}

			}).start();

			break;

		}



		return true;

	}



	public void onContextMenuClosed(Menu menu) {



		super.getActivity().onContextMenuClosed(menu);

	}



	private void loadImages() {

		final Object data = getActivity().getLastNonConfigurationInstance();

		if (data == null) {

			new LoadImagesFromSDCard().execute();

			progress();

		} else {

			final LoadedImage[] photos = (LoadedImage[]) data;

			if (photos.length == 0) {

				new LoadImagesFromSDCard().execute();

				progress();

			}

			for (LoadedImage photo : photos) {

				addImage(photo);

			}

		}

	}



	private void addImage(LoadedImage... value) {

		for (LoadedImage image : value) {

			imageAdapter.addPhoto(image);

			imageAdapter.notifyDataSetChanged();

		}

	}



	class LoadImagesFromSDCard extends AsyncTask<Object, LoadedImage, Object> {

		@Override

		protected Object doInBackground(Object... params) {



			Bitmap newBitmap = null;

			File file = new File(localPath);

			String[] filepath = file.list();

			for (String str : filepath) {

				String filename = str;

				String imagePath = localPath + "/" + filename;

				File files = new File(imagePath);



				FileInputStream is = null;

				BufferedInputStream bis = null;



				BitmapFactory.Options opts = new BitmapFactory.Options();



				if (files.length() < 51200) { // 20-50k

					opts.inSampleSize = 2;

				} else if (files.length() < 307200) { // 50-300k

					opts.inSampleSize = 4;

				} else if (files.length() < 819200) { // 300-800k

					opts.inSampleSize = 6;

				} else if (files.length() < 1048576) { // 800-1024k

					opts.inSampleSize = 8;

				} else {

					opts.inSampleSize = 12;

				}



				Bitmap bitmap = BitmapFactory.decodeFile(files.getPath(), opts);



				long size = files.length();

				DecimalFormat df = new DecimalFormat("#.00");

				String fileSizeString = "";

				if (size < 1024) {

					fileSizeString = df.format((double) size) + "B";

				} else if (size < 1048576) {

					fileSizeString = df.format((double) size / 1024) + "K";

				} else if (size < 1073741824) {

					fileSizeString = df.format((double) size / 1048576) + "M";

				} else {

					fileSizeString = df.format((double) size / 1073741824)

							+ "G";

				}



				long time = files.lastModified();

				Calendar cal = Calendar.getInstance();

				cal.setTimeInMillis(time);



				String date = cal.getTime().toLocaleString();

				if (bitmap != null) {



					newBitmap = Bitmap.createScaledBitmap(bitmap, 70, 70, true);

					bitmap.recycle();

					bitmap = null;

					if (newBitmap != null) {

						publishProgress(new LoadedImage(newBitmap, date,

								fileSizeString, filename, imagePath));

					}

				}

			}

			return null;

		}



		@Override

		public void onProgressUpdate(LoadedImage... value) {

			addImage(value);

		}



		@Override

		protected void onPostExecute(Object result) {

			pw_two.setVisibility(View.GONE);

			imageAdapter.notifyDataSetChanged();

		}

	}



	class ImageAdapter extends BaseAdapter {

		private Context mContext;



		public ImageAdapter(Context context) {

			mContext = context;

		}



		public void addPhoto(LoadedImage photo) {

			mPhotos.add(photo);

			notifyDataSetChanged();

		}



		public int getCount() {

			return mPhotos == null ? 0 : mPhotos.size();

		}



		public Object getItem(int position) {

			return mPhotos == null ? null : mPhotos.get(position);

		}



		public ArrayList<LoadedImage> getPhoto() {

			return mPhotos;

		}



		public long getItemId(int position) {

			return position;

		}



		public View getView(final int position, View convertView,

				final ViewGroup parent) {

			ViewHolder viewHolder = null;

			if (convertView == null) {

				viewHolder = new ViewHolder();

				convertView = LayoutInflater.from(mContext).inflate(

						R.layout.share_content, null);

				viewHolder.tv_name = (TextView) convertView

						.findViewById(R.id.photo_name);

				viewHolder.tv_time = (TextView) convertView

						.findViewById(R.id.photo_time);

				viewHolder.tv_size = (TextView) convertView

						.findViewById(R.id.photo_size);

				viewHolder.img_icon = (ImageView) convertView

						.findViewById(R.id.photo);

				viewHolder.img_btn = (ImageButton) convertView

						.findViewById(R.id.img_operate);

				convertView.setTag(viewHolder);

			} else {

				viewHolder = (ViewHolder) convertView.getTag();

			}

			viewHolder.tv_name.setText(mPhotos.get(position).getName());

			viewHolder.tv_time.setText(mPhotos.get(position).getFileDateTime());

			viewHolder.tv_size.setText(mPhotos.get(position).getBitmapSize());

			viewHolder.img_icon.setImageBitmap(mPhotos.get(position)

					.getBitmap());

			viewHolder.img_btn.setOnTouchListener(new OnTouchListener() {

				@Override

				public boolean onTouch(View v, MotionEvent event) {

					if (popupWindow != null) {

						popupWindow.dismiss();

					} else {

						initPopupWindow(v, position);

					}

					return true;

				}

			});

			return convertView;



		}



		class ViewHolder {

			TextView tv_name;

			TextView tv_time;

			TextView tv_size;

			ImageView img_icon;

			ImageButton img_btn;

		}

	}



	private static class LoadedImage {

		Bitmap mBitmap;

		String mDate;

		String mSize;

		String mFilename;

		String mPath;



		LoadedImage(Bitmap bitmap, String date, String size, String filename,

				String path) {

			mBitmap = bitmap;

			mDate = date;

			mSize = size;

			mFilename = filename;

			mPath = path;

		}



		public Bitmap getBitmap() {

			return mBitmap;

		}



		public String getName() {

			return mFilename;

		}



		public String getBitmapSize() {

			return mSize;

		}



		public String getFileDateTime() {

			return mDate;

		}



		public String getPath() {

			return mPath;



		}



	}



	@SuppressLint("NewApi")

	public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

		LayoutInflater inflater = LayoutInflater.from(getActivity());

		String path = imageAdapter.getPhoto().get(position).getPath();

		System.out.println("path-------" + path);

		Bitmap bm = BitmapFactory.decodeFile(path);

		if (bm != null) {

			View img = inflater.inflate(R.layout.dialog_view, null);

			ImageView view = (ImageView) img.findViewById(R.id.imgView);

			final AlertDialog dialog = new AlertDialog.Builder(getActivity(),

					R.style.Translucent_NoTitle).create();

			view.setImageBitmap(bm);

			dialog.setView(img);

			dialog.show();



			view.setOnClickListener(new OnClickListener() {

				@Override

				public void onClick(View v) {

					dialog.cancel();

				}

			});

		} else {

			Toast.makeText(getActivity(), "没有图片可以浏览!", 1).show();

		}

	}



	// 点击刷新

	class RefreshButton implements OnClickListener {



		public void onClick(View v) {

			connect();

			mPhotos.clear();

			loadImages();

		}



	}



	@Override

	public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2,

			long arg3) {

		return false;

	}



	private void initPopupWindow(View convertView, int position) {

		final int pos = (int) imageAdapter.getItemId(position);

		final String path = imageAdapter.getPhoto().get(pos).getPath();

		final String filename = imageAdapter.getPhoto().get(pos).getName();



		// RelativeLayout pv = (RelativeLayout) LayoutInflater.from(

		// getActivity()).inflate(R.layout.popupwindow, null);



		// popupWindow = new PopupWindow(getActivity());

		// popupWindow.setBackgroundDrawable(new BitmapDrawable());

		// popupWindow.setContentView(pv);



		// popupWindow.setWidth(getActivity().getWindowManager().getDefaultDisplay().getWidth()

		// / 3);

		// popupWindow.setHeight(60);



		// popupWindow.setOutsideTouchable(true);

		// popupWindow.setFocusable(true);



		screenWidth = getActivity().getWindowManager().getDefaultDisplay()

				.getWidth();

		screenHeight = getActivity().getWindowManager().getDefaultDisplay()

				.getHeight();

		View popupWindow_view = getActivity().getLayoutInflater().inflate(

				R.layout.popupwindow, null, false);

		popupWindow = new PopupWindow(popupWindow_view, screenWidth - 40,

				screenHeight / 3 - 20, true);

		popupWindow.setBackgroundDrawable(new BitmapDrawable());

		popupWindow.setContentView(popupWindow_view);

		popupWindow.setFocusable(true);

		popupWindow.setOutsideTouchable(true);

		// popupWindow.showAsDropDown(convertView);

		popupWindow

				.showAtLocation(convertView, Gravity.LEFT | Gravity.TOP,

						getActivity().getWindowManager().getDefaultDisplay()

								.getWidth() / 4,

						getStateBar() + convertView.getHeight()

								* (position + 1));

		layout_check = (TextView) popupWindow_view.findViewById(R.id.check);

		layout_delete = (TextView) popupWindow_view.findViewById(R.id.delete);

		layout_check.setOnClickListener(new OnClickListener() {

			@Override

			public void onClick(View v) {

				LayoutInflater inflater = LayoutInflater.from(getActivity());

				System.out.println("path-------" + path);

				Bitmap bm = BitmapFactory.decodeFile(path);

				if (bm != null) {

					View img = inflater.inflate(R.layout.dialog_view, null);

					ImageView view = (ImageView) img.findViewById(R.id.imgView);

					final AlertDialog dialog = new AlertDialog.Builder(

							getActivity(), R.style.Translucent_NoTitle)

							.create();

					view.setImageBitmap(bm);

					dialog.setView(img);

					dialog.show();

					view.setOnClickListener(new OnClickListener() {

						@Override

						public void onClick(View v) {

							dialog.cancel();

						}

					});

				} else {

					Toast.makeText(getActivity(), "没有图片可以浏览!", 1).show();

				}

			}

		});

		layout_delete.setOnClickListener(new OnClickListener() {



			@Override

			public void onClick(View v) {

				mPhotos.remove(pos);

				imageAdapter.notifyDataSetChanged();

				sdcardImages.invalidate();

				File f = new File(path);

				f.delete();

				new Thread(new Runnable() {

					@Override

					public void run() {

						Looper.prepare();

						try {

							ftp.connect("125.88.22.147", 21, "tea_system",

									"&UJM8ik,");

							ftp.deleteLoadFile("/" + filename);

							Toast.makeText(getActivity(), "图片删除成功!", 1).show();

						} catch (IOException e) {

							Toast.makeText(getActivity(), "图片删除失败!", 1).show();

							e.printStackTrace();

						}

					}

				}).start();

			}

		});



		popupWindowHeight = popupWindow.getHeight();

		popupWindowWidth = popupWindow.getWidth();

	}



	

	

}

  ContentPagerAdapter.java

Fragment适配器

public class ContentPagerAdapter extends FragmentPagerAdapter {



	private Fragment[] fragments;



	public ContentPagerAdapter(FragmentManager fm) {

		super(fm);

		fragments = new Fragment[2];

		fragments[0] = new FindFragment();

		fragments[1] = new CheckSdcard();

	}



	@Override

	public Fragment getItem(int position) {

		return fragments[position];

	}



	@Override

	public int getCount() {

		return fragments.length;

	}

}

  

你可能感兴趣的:(Activity)