六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

怎么在安卓編程怎么完成取得本機(jī)中所有圖片方法

[摘要]如何在安卓編程怎么實(shí)現(xiàn)獲取本機(jī)中所有圖片方法在這個(gè)示例中,我使用android-support-v4.jar中的加載器來實(shí)現(xiàn)獲取本機(jī)中所有圖片,關(guān)于這個(gè)包在以前的文章中也提到,是一個(gè)非常有用的包。 ...

如何在安卓編程怎么實(shí)現(xiàn)獲取本機(jī)中所有圖片方法

  在這個(gè)示例中,我使用android-support-v4.jar中的加載器來實(shí)現(xiàn)獲取本機(jī)中所有圖片,關(guān)于這個(gè)包在以前的文章中也提到,是一個(gè)非常有用的包。

     本示例演示如何在Android中實(shí)現(xiàn)獲取本機(jī)中的所有圖片,并進(jìn)行查看效果。

  先讓我們看下本示例實(shí)現(xiàn)的效果圖:

如何在安卓編程怎么實(shí)現(xiàn)獲取本機(jī)中所有圖片方法 如何在安卓編程怎么實(shí)現(xiàn)獲取本機(jī)中所有圖片方法

  項(xiàng)目結(jié)構(gòu)圖如下所示:

如何在安卓編程怎么實(shí)現(xiàn)獲取本機(jī)中所有圖片方法

  MyDevicePhotoActivity.java文件中代碼如下:

package com.device.photo;

import android.app.Dialog;
import android.content.ContentResolver;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;

import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.SimpleCursorAdapter;
import android.support.v4.widget.SimpleCursorAdapter.ViewBinder;

/**
* Android實(shí)現(xiàn)獲取本機(jī)中所有圖片
* @Description: Android實(shí)現(xiàn)獲取本機(jī)中所有圖片

* @FileName: MyDevicePhotoActivity.java

* @Package com.device.photo

* @Author Hanyonglu

* @Date 2012-5-10 下午04:43:55

* @Version V1.0
*/
public class MyDevicePhotoActivity extends FragmentActivity implements LoaderCallbacks{
private Bitmap bitmap = null;
private byte[] mContent = null;

private ListView listView = null;
private SimpleCursorAdapter simpleCursorAdapter = null;

private static final String[] STORE_IMAGES = {
MediaStore.Images.Media.DISPLAY_NAME,
MediaStore.Images.Media.LATITUDE,
MediaStore.Images.Media.LONGITUDE,
MediaStore.Images.Media._ID
};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

listView = (ListView)findViewById(android.R.id.list);
simpleCursorAdapter = new SimpleCursorAdapter(
this,
R.layout.simple_list_item,
null,
STORE_IMAGES,
new int[] { R.id.item_title, R.id.item_value},
0
);

simpleCursorAdapter.setViewBinder(new ImageLocationBinder());
listView.setAdapter(simpleCursorAdapter);
// 注意此處是getSupportLoaderManager(),而不是getLoaderManager()方法。
getSupportLoaderManager().initLoader(0, null, this);

// 單擊顯示圖片
listView.setOnItemClickListener(new ShowItemImageOnClickListener());
}

@Override
public Loader onCreateLoader(int arg0, Bundle arg1) {
// TODO Auto-generated method stub
// 為了查看信息,需要用到CursorLoader。
CursorLoader cursorLoader = new CursorLoader(
this,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
STORE_IMAGES,
null,
null,
null);
return cursorLoader;
}

@Override
public void onLoaderReset(Loader arg0) {
// TODO Auto-generated method stub
simpleCursorAdapter.swapCursor(null);
}

@Override
public void onLoadFinished(Loader arg0, Cursor cursor) {
// TODO Auto-generated method stub
// 使用swapCursor()方法,以使舊的游標(biāo)不被關(guān)閉.
simpleCursorAdapter.swapCursor(cursor);
}

// 將圖片的位置綁定到視圖
private class ImageLocationBinder implements ViewBinder{
@Override
public boolean setViewValue(View view, Cursor cursor, int arg2) {
// TODO Auto-generated method stub
if (arg2 == 1) {
// 圖片經(jīng)度和緯度
double latitude = cursor.getDouble(arg2);
double longitude = cursor.getDouble(arg2 + 1);

if (latitude == 0.0 && longitude == 0.0) {
((TextView)view).setText("位置:未知");
} else {
((TextView)view).setText("位置:" + latitude + ", " + longitude);
}

// 需要注意:在使用ViewBinder綁定數(shù)據(jù)時(shí),必須返回真;否則,SimpleCursorAdapter將會(huì)用自己的方式綁定數(shù)據(jù)。
return true;
} else {
return false;
}
}
}

// 單擊項(xiàng)顯示圖片事件監(jiān)聽器
private class ShowItemImageOnClickListener implements OnItemClickListener{
@Override
public void onItemClick(AdapterViewparent, View view, int position,
long id) {
// TODO Auto-generated method stub
final Dialog dialog = new Dialog(MyDevicePhotoActivity.this);
// 以對話框形式顯示圖片
dialog.setContentView(R.layout.image_show);
dialog.setTitle("圖片顯示");

ImageView ivImageShow = (ImageView) dialog.findViewById(R.id.ivImageShow);
Button btnClose = (Button) dialog.findViewById(R.id.btnClose);

btnClose.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
dialog.dismiss();
}

});

Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI.buildUpon().
appendPath(Long.toString(id)).build();
FileUtil file = new FileUtil();
ContentResolver resolver = getContentResolver();

// 從Uri中讀取圖片資源
try {
mContent = file.readInputStream(resolver.openInputStream(Uri.parse(uri.toString())));
bitmap = file.getBitmapFromBytes(mContent, null);
ivImageShow.setImageBitmap(bitmap);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}

dialog.show();
}
}
}

FileUtil.java文件主要是對圖片資源的處理。代碼如下:

package com.device.photo;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

/**
* 文件操作類
* @Description: 文件操作類

* @FileName: FileUtil.java

* @Package com.device.photo

* @Author Hanyonglu

* @Date 2012-5-10 下午01:37:49

* @Version V1.0
*/
public class FileUtil {
public FileUtil() {
// TODO Auto-generated constructor stub
}

/**
* InputStream to byte
* @param inStream
* @return
* @throws Exception
*/
public byte[] readInputStream(InputStream inStream) throws Exception {
byte[] buffer = new byte[1024];
int len = -1;
ByteArrayOutputStream outStream = new ByteArrayOutputStream();

while ((len = inStream.read(buffer)) != -1) {
outStream.write(buffer, 0, len);
}

byte[] data = outStream.toByteArray();
outStream.close();
inStream.close();

return data;
}

/**
* Byte to bitmap
* @param bytes
* @param opts
* @return
*/
public Bitmap getBitmapFromBytes(byte[] bytes, BitmapFactory.Options opts) {
if (bytes != null){
if (opts != null){
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length,opts);
}
else{
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}
}

return null;
}
}

希望我的這個(gè)大家有所幫助,記得在這篇日志下面或者主頁的留言板中留下你們的建議和反饋,這些對我們是最寶貴的財(cái)富,預(yù)祝大家快樂!有問題大家積極回帖討論下哈!


學(xué)習(xí)教程快速掌握從入門到精通的電腦知識(shí)




主站蜘蛛池模板: 亚洲成人日韩 | 日本高清一级片 | 欧美性黑人极品hd网站 | 日本免费高清在线观看播放 | 午夜婷婷网 | 外国一级黄色 | 欧美综合激情 | 欧美一级情欲片在线 | 色综合天天综合网国产成人网 | 三级在线免费观看 | 人人爱人人做 | 青娱娱乐盛宴免费一二区 | 色噜噜噜噜色 | 欧美亚洲另类久久综合 | 日韩精品国产自在欧美 | 日韩中文字幕在线观看视频 | 日日麻批视频 | 亚洲高清一区二区三区四区 | 性调教视频 | 亚洲视频在线观看一区 | 私库在线视频看看 | 亚洲乱码一二三四区国产 | 日韩a级毛片免费观看 | 亚洲综合视频在线 | 色噜噜狠狠色综合欧洲selulu | 午夜视频在线观看网站 | 日韩欧美色视频在线观看 | 欧美亚洲人成网站在线观看刚交 | 日本三级精品 | 亚洲欧美综合色区小说 | 午夜影院普通 | 亚洲国内精品久久 | 在线观看国产一区二区三区 | 深夜福利免费视频 | 欧美性活生活视频 | 午夜影院私人 | 日本三级理论片 | 啪啪综合网 | 欧美线在线精品观看视频 | 一区二区三区欧美日韩 | 欧美一区亚洲 |