Đối tải lên hình ảnh đến một máy chủ từ ứng dụng của bạn, bạn có thể làm theo hướng dẫn sau đây:
Uploading files to HTTP server using POST on Android.
Upload image or file using http POST multi-part.
Hai url trên sẽ giải thích cho bạn cách tải hình ảnh từ ứng dụng của bạn lên máy chủ.
Để tải hình ảnh lên từ thư viện ảnh của bạn, bạn yêu cầu đường dẫn của tệp hình ảnh đó và thay thế đường dẫn thu được bằng /data/file_to_send.mp3
trong url đầu tiên.
Để có được đường dẫn của hình ảnh từ bộ sưu tập điện thoại di động bạn có thể làm theo các đoạn mã sau:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b1 = (Button)findViewById(R.id.Button01);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
openGallery(SELECT_FILE1);
}
});
}
public void openGallery(int req_code) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select file to upload "), req_code);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Uri selectedImageUri = data.getData();
if (requestCode == SELECT_FILE1) {
selectedPath1 = getPath(selectedImageUri);
System.out.println("selectedPath1 : " + selectedPath1);
}
if (requestCode == SELECT_FILE2) {
selectedPath2 = getPath(selectedImageUri);
System.out.println("selectedPath2 : " + selectedPath2);
}
tv.setText("Selected File paths : " + selectedPath1 + "," + selectedPath2);
}
}
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
để tải về hình ảnh mà bạn có thể thực hiện đoạn mã sau.
ImageView image = (ImageView)findViewById(R.id.image);
if(!ImageUrl.equals("no image")) {
try {
image.setImageDrawable(grabImageFromUrl(ImageUrl));
} catch(Exception e) {
}
}
private Drawable grabImageFromUrl(String url) throws Exception {
return Drawable.createFromStream((InputStream)new URL(url).getContent(), "src");
}
Nguồn
2012-03-19 12:40:30
Đó không phải là quá rộng và nó được thực sự là một sai lầm lớn để đóng câu hỏi này – mok