如何获取日期并显示? [英] How to get the Date Taken and Display it?

查看:80
本文介绍了如何获取日期并显示?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在第一个活动中有这个活动是以sdcard显示图片,并将其加载到gridview中。当第二个活动是在gridview中单击图片时,它将显示图像的完整大小。我想要的是与我的第二个活动,我还要显示被点击的图片的拍摄日期。如何获取日期并显示它。

I have this Activities where in the First Activity is to show the pictures in sdcard and load it in gridview. While the second activity is when you click a picture in the gridview it'll display the full size of the image. What do I want is with my second activity, I want also to display the 'date taken' of the picture that was clicked. How to get the date taken and display it.

这是我的第一个活动。

public class MainActivity extends Activity {

public class ImageAdapter extends BaseAdapter {

    private Context mContext;
    ArrayList<String> itemList = new ArrayList<String>();

    public ImageAdapter(Context c) {
        mContext = c;
    }

    void add(String path) {
        itemList.add(path);
    }

    @Override
    public int getCount() {
        return itemList.size();
    }

    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) { // if it's not recycled, initialize some
                                    // attributes
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(220, 220));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(8, 8, 8, 8);
        } else {
            imageView = (ImageView) convertView;
        }

        Bitmap bm = decodeSampledBitmapFromUri(itemList.get(position), 220,
                220);

        imageView.setImageBitmap(bm);
        return imageView;
    }

    public Bitmap decodeSampledBitmapFromUri(String path, int reqWidth,
            int reqHeight) {

        Bitmap bm = null;
        // First decode with inJustDecodeBounds=true to check dimensions
        final BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(path, options);

        // Calculate inSampleSize
        options.inSampleSize = calculateInSampleSize(options, reqWidth,
                reqHeight);

        // Decode bitmap with inSampleSize set
        options.inJustDecodeBounds = false;
        bm = BitmapFactory.decodeFile(path, options);

        return bm;
    }

    public int calculateInSampleSize(

    BitmapFactory.Options options, int reqWidth, int reqHeight) {
        // Raw height and width of image
        final int height = options.outHeight;
        final int width = options.outWidth;
        int inSampleSize = 1;

        if (height > reqHeight || width > reqWidth) {
            if (width > height) {
                inSampleSize = Math.round((float) height
                        / (float) reqHeight);
            } else {
                inSampleSize = Math.round((float) width / (float) reqWidth);
            }
        }

        return inSampleSize;
    }

}

ImageAdapter myImageAdapter;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    GridView gridview = (GridView) findViewById(R.id.gridview);
    myImageAdapter = new ImageAdapter(this);
    gridview.setAdapter(myImageAdapter);

    String ExternalStorageDirectoryPath = Environment
            .getExternalStorageDirectory().getAbsolutePath();

    String targetPath = ExternalStorageDirectoryPath + "/test/";

    Toast.makeText(getApplicationContext(), targetPath, Toast.LENGTH_LONG)
            .show();
    File targetDirector = new File(targetPath);

    File[] files = targetDirector.listFiles();
    for (File file : files) {
        myImageAdapter.add(file.getAbsolutePath());
    }
}

gridview.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {

ImageView img = myImageAdapter.getView(position, v, parent);
                img.buildDrawingCache(); 
                Bitmap bmap = img.getDrawingCache();
                Intent intent = new Intent(MainActivity.this,
                        Imageviewer.class);
                Bundle bundle = new Bundle();
                    String par=myimageadpter.getpath(position);
                             bundle.putString("imagepath", par);
                intent.putExtras(bundle);
                startActivityForResult(intent, 0);

            }
        });

这里是第二个活动

public class ImageViewer extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    Bundle bundle = this.getIntent().getExtras();

    String s=bundle.getString("imagepath");
    Bitmap Imagefrompath = BitmapFactory.decodeFile(s);
            ImageView img=(ImageView) findViewById(R.id.imageView1);
            img.setImageBitmap(Imagefrompath );


}

}


推荐答案

首先检查文件是否存在于您的路径。

First check if the file exist at your path.

第二次尝试获取文件创建日期(如果可用)

2nd try to get File created Date if available

第3如果创建日期不可用,请转到上次修改日期

3rd If date created not available then go for last modified date

File file = new File(filePath);
if(file.exists()) //Extra check, Just to validate the given path
{
    ExifInterface intf = null;
    try 
    {
        intf = new ExifInterface(filePath);
        if(intf != null)
        {
            String dateString = intf.getAttribute(ExifInterface.TAG_DATETIME);
            Log.i("Dated : "+ dateString.toString()); //Dispaly dateString. You can do/use it your own way        
        }
    }
    catch
    {
    }
    if(intf == null)
    {
        Date lastModDate = new Date(file.lastModified());
        Log.i("Dated : "+ lastModDate.toString());//Dispaly lastModDate. You can do/use it your own way
    }
}

这篇关于如何获取日期并显示?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆