package cn.edu.chd.yitu; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import android.content.Intent; import android.graphics.Point; import android.os.Bundle; import android.os.Environment; import android.support.v4.app.Fragment; import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; import cn.edu.chd.adapter.YiImageAdapter; import cn.edu.chd.utils.YiUtils; import cn.edu.chd.values.ApplicationValues; /** * @author Rowand jj * "�ҵ���Ʒ"ѡ� �������ڣ�onCreate->onCreateView */ public class TabMyWorks extends Fragment { /** * �Ƿ�����Ʒ */ public boolean has_works; private GridView mGridView = null; private static final int DEFAULT_WIDTH = 140;//Ĭ�Ͽ�� private static final int DEFAULT_HEIGHT = 170;//Ĭ�ϸ߶� private static final String TAG = "TabMyWorks"; public static final String POSITION = "position"; /** * ��Ʒ�ļ����µ�ͼƬ�� */ private List<String> imageNames; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); has_works = getImageNames().size()==0 ? false : true;//�ж�ָ���ļ������Ƿ����ļ����� if (has_works) { imageNames = getImageNames(); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = null; if (has_works) { view = inflater.inflate(R.layout.layout_tab_mine, null); mGridView = (GridView) view.findViewById(R.id.grid_view_tab_mine_works); } else { view = inflater.inflate(R.layout.layout_tab_mine_noworks, null); } return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (has_works) { loadImage(); mGridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //TODO ��� Intent intent = new Intent(TabMyWorks.this.getActivity(),BrowseWorks.class); intent.putExtra(POSITION,position+""); TabMyWorks.this.startActivity(intent); } }); registerForContextMenu(mGridView);//ע�������IJ˵� } } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { //���������IJ˵� super.onCreateContextMenu(menu, v, menuInfo); getActivity().getMenuInflater().inflate(R.menu.menu_works_item_selected, menu); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();//��Ҫ����ת�� switch (item.getItemId()) { case R.id.id_menu_works_delete: delete(info.position); return true; case R.id.id_menu_works_edit: edit(info.position); return true; default: return super.onContextItemSelected(item); } } /** * ɾ����Ʒ */ private void delete(int position) { String fileName = imageNames.get(position); new File(fileName).delete(); ChooseModel activity = (ChooseModel) getActivity(); activity.getAdapter().reLoad(); } /** * �༭��Ʒ * @param position */ private void edit(int position) { Intent intent = new Intent(getActivity(),CanvasPreview.class); intent.putExtra(ApplicationValues.Base.PREVIEW_TYPE, ApplicationValues.Base.TYPE_MY_WORKS); intent.putExtra(TabDIY.IMAGE_DATA,imageNames.get(position)); startActivity(intent); } /** * ��ȡָ���ļ����µ���ƷͼƬ���Ƽ��� * * @return */ private List<String> getImageNames() { String dir = null; List<String> imageNames = new ArrayList<String>();//��ֹnullָ�� if (YiUtils.isSDCardAvailable()) { dir = Environment.getExternalStorageDirectory().getAbsolutePath()+ ApplicationValues.Base.SAVE_PATH; String[] temp1 = YiUtils.traverseImages(dir); if (temp1 != null) imageNames = new ArrayList<String>(Arrays.asList(temp1)); } dir = Environment.getDataDirectory().getAbsolutePath()+ ApplicationValues.Base.SAVE_PATH; String[] temp2 = YiUtils.traverseImages(dir); if (temp2 != null) { for (String str : temp2) { imageNames.add(str); } } Log.i(TAG,"---------->GET_IMAGE_NAMES RUN,NUM = "+imageNames.size()); return imageNames; } /** * ����ͼƬ����ʾ��GridView�� */ private void loadImage() { Point point = new Point(DEFAULT_WIDTH,DEFAULT_HEIGHT); mGridView.setAdapter(new YiImageAdapter(getActivity(), imageNames, mGridView, point)); } }