Where The Streets Have No Name

android에서 이미지를 gallery를 통해서 보여주기 본문

Developement/Mobile

android에서 이미지를 gallery를 통해서 보여주기

highheat 2012. 4. 18. 15:46
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file:///sdcard/DCIM/Camera/IMG_20120404_090943.jpg"), "image/*");
startActivity(intent);
외부에 있는 이미지 파일인 경우 sd card로 다운로드 한후 위의 방법으로 열어보면됨.
sd card 저장 소스
try {
	//set the download URL, a url that points to a file on the internet
	//this is the file to be downloaded
	URL url = new URL("http://somewhere.com/some/webhosted/file");

	//create the new connection
	HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

	//set up some things on the connection
	urlConnection.setRequestMethod("GET");
	urlConnection.setDoOutput(true);

	//and connect!
	urlConnection.connect();

	//set the path where we want to save the file
	//in this case, going to save it on the root directory of the
	//sd card.
	File SDCardRoot = Environment.getExternalStorageDirectory();
	//create a new file, specifying the path, and the filename
	//which we want to save the file as.
	File file = new File(SDCardRoot,"somefile.ext");

	//this will be used to write the downloaded data into the file we created
	FileOutputStream fileOutput = new FileOutputStream(file);

	//this will be used in reading the data from the internet
	InputStream inputStream = urlConnection.getInputStream();

	//this is the total size of the file
	int totalSize = urlConnection.getContentLength();
	//variable to store total downloaded bytes
	int downloadedSize = 0;

	//create a buffer...
	byte[] buffer = new byte[1024];
	int bufferLength = 0; //used to store a temporary size of the buffer

	//now, read through the input buffer and write the contents to the file
	while ( (bufferLength = inputStream.read(buffer)) > 0 ) {
		//add the data in the buffer to the file in the file output stream (the file on the sd card
		fileOutput.write(buffer, 0, bufferLength);
		//add up the size so we know how much is downloaded
		downloadedSize += bufferLength;
		//this is where you would do something to report the prgress, like this maybe
		updateProgress(downloadedSize, totalSize);

	}
	//close the output stream when done
	fileOutput.close();

//catch some possible errors...
} catch (MalformedURLException e) {
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
}
// see http://androidsnippets.com/download-an-http-file-to-sdcard-with-progress-notification