package cn.edu.chd.yitu;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import cn.edu.chd.utils.YiUtils;
import cn.edu.chd.values.ApplicationValues;
/**
* @author Rowand jj �Զ��廭������ ---������Ϊ���� ---ͼ����ѡ��
*/
public class TabDIY extends Fragment
{
private GridView mGridView = null;
private static final String IMAGE_NAME = "image_name";
private static final String TEXT_NAME = "text_name";
private static final String from_gallery = "ͼ��";
private static final String from_camera = "����";
private static final int CODE_CAMERA = 1;
private static final int CODE_GALLERY = 2;
public static final String IMAGE_DATA = "image_data";
private File saveFile = null;
private static final String TAG = "TabDIY";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.layout_tab_diy, null);
mGridView = (GridView) view.findViewById(R.id.grid_view_tab_diy);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> item1 = new HashMap<String, String>();
item1.put(IMAGE_NAME, R.drawable.from_camera + "");
item1.put(TEXT_NAME, from_camera);
Map<String, String> item2 = new HashMap<String, String>();
item2.put(IMAGE_NAME, R.drawable.from_gallery + "");
item2.put(TEXT_NAME, from_gallery);
list.add(item1);
list.add(item2);
mGridView.setAdapter(new SimpleAdapter(getActivity(), list,
R.layout.gridview_item_diy, new String[]
{ IMAGE_NAME, TEXT_NAME }, new int[]
{ R.id.diy_item_image, R.id.diy_item_text }));
mGridView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
if (position == 0)
{
toCamera();
} else if (position == 1)
{
toGalley();
}
}
});
}
/**
* ����
* @param path
*/
private void toCamera()
{
String name = YiUtils.getCurrentDate() + ".jpg";
saveFile = new File(YiUtils.getTempPath(), name);
/* ��ϵͳ������յ�intent */
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(saveFile));
this.startActivityForResult(intent, CODE_CAMERA);
}
/**
* ��ͼ����ѡ��ͼƬ
*/
private void toGalley()
{
Intent intent = new Intent(getActivity(),YiGallery.class);
this.startActivityForResult(intent, CODE_GALLERY);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK)
{
if(requestCode == CODE_CAMERA)
{
Intent intent = new Intent(getActivity(),CanvasPreview.class);
intent.putExtra(IMAGE_DATA,saveFile.getAbsolutePath());
Log.i(TAG,"path = "+saveFile.getAbsolutePath());
intent.putExtra(ApplicationValues.Base.PREVIEW_TYPE, ApplicationValues.Base.TYPE_CAMERA);
this.startActivity(intent);
}else if(requestCode == CODE_GALLERY)
{
String image_path = data.getStringExtra(IMAGE_DATA);
Intent intent = new Intent(getActivity(),CanvasPreview.class);
intent.putExtra(IMAGE_DATA,image_path);
intent.putExtra(ApplicationValues.Base.PREVIEW_TYPE, ApplicationValues.Base.TYPE_GALLERY);
this.startActivity(intent);
}
}
}
}