android開發相冊
⑴ Android開發中跳轉到相冊,在點擊選在具體的圖片時程序直接崩潰
你是做android開發是吧,如果你是根據uri來獲取照片的話,要注意安卓版本,5.0上下是有區別的,
⑵ Android中相冊實現大致方法!
當文本框失去焦點的時候判斷是否顯示圖片
當文本框得到焦點的時候不顯示圖片
一開始xml布局的時候這張圖片就已經布局在這里了,如果符合顯示的條件的時候,就讓imageview的setVisibility的參數為View.VISIBLE方法讓圖片顯示,所以重點在於布局
布局其實也簡單,就是一個imageview相對於昵稱文本框的下面-5dip(數值可以調整),與昵稱文本框右對齊,背景透明,Visibility屬性設為gone或者invisible(最好設為gone,因為用gone不佔據空間布局,用invisible占據空間布局,但是都會隱藏,不過現在用相對布局不用擔心這個問題)
⑶ android開發中如何獲取指定相冊id里的所有圖片
你也沒說你用的是android SDK,sdk中沒有封裝所有的api,照片部分僅封裝了大多數開發者常用的上傳照片功能,如果沒有實現的api,需要根據裡面的邏輯自己實現,發送請求的部分和其他api是一致的,不需要自己實現
⑷ Android開發中怎麼將照片存儲到系統相冊中
java">//創建輸出流,指向SD卡的Pictures文件夾
finalFiledirectory=Environment.(Environment.DIRECTORY_DCIM);
//創建保存的文件
Filefile=newFile(directory,"test.png");
FileOutputStreamout=null;
try{
out=newFileOutputStream(file);
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
}
//bitmap就是你的圖片
bitmap.compress(Bitmap.CompressFormat.PNG,100,out);
⑸ android 相冊開發
獲取照片的方法如下:
private ArrayList<ImageItem> getLatestImagePaths() {
Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
String key_MIME_TYPE = MediaStore.Images.Media.MIME_TYPE;
String key_DATA = MediaStore.Images.Media.DATA;
ContentResolver mContentResolver = getContentResolver();
Cursor cursor = mContentResolver.query(mImageUri, new String[]{key_DATA},
key_MIME_TYPE + "=? or " + key_MIME_TYPE + "=? or " + key_MIME_TYPE + "=?",
new String[]{"image/jpg", "image/jpeg", "image/png"},
MediaStore.Images.Media.DATE_MODIFIED);
ArrayList<ImageItem> latestImagePaths = null;
if (cursor != null) {
if (cursor.moveToLast()) {
latestImagePaths = new ArrayList<ImageItem>();
while (true) {
String path = cursor.getString(0);
ImageItem imageItem = new ImageItem();
imageItem.setImagePath(path);
// latestImagePaths.add(path);
latestImagePaths.add(imageItem);
if (!cursor.moveToPrevious()) {
break;
}
}
}
cursor.close();
}
return latestImagePaths;
}
⑹ android中怎麼做自己的相冊
package com.fit.background;
import Java.io.IOException;
import Android.app.Activity;
import android.app.WallpaperManager;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.NET.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
⑺ android開發打開系統相冊,不要選取圖片,就是直接打開相冊應用
/**
* 打開相冊,
*
* @return
*/
public void openAlbum(Context context) {
Intent intent = new Intent(Intent.ACTION_PICK);
context.startActivity(intent);
}
⑻ Android開發如何從手機相冊中選擇照片
File DatalDir = Environment.getExternalStorageDirectory();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_hhmmss",
Locale.SIMPLIFIED_CHINESE);
String midPath = "DCIM/Camera/"+ sdf.format(new Date())+ ".jpg";
File outMid = new File( DatalDir.getPath() + "/DCIM/Camera");
存這個地址就可以;
⑼ android 開發調用系統相機為什麼只顯示最近相冊,系統的相冊哪去了
系統已經有的東西,如果我們沒有新的需求的話,直接調用是最直接的。下面講講調用系統相機拍照並保存圖片和如何調用系統相冊的方法。
首先看看調用系統相機的核心方法:
Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(camera, 100);
相機返回的數據通過下面的回調方法取得,並處理
復制代碼
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == CAMERA && resultCode == Activity.RESULT_OK && null != data){
Bundle bundle = data.getExtras();
//獲取相機返回的數據,並轉換為圖片格式
Bitmap bitmap = (Bitmap)bundle.get("data");
}
}
復制代碼
下面是調用系統相冊並取得照片的方法:
Intent picture = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(picture, 101);
或者
intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
((Activity) context).startActivityForResult(intent, 101);
下面是相應的回調方法:
復制代碼
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 101 && resultCode == Activity.RESULT_OK && null != data){
Uri selectedImage = data.getData();
String[] filePathColumns={MediaStore.Images.Media.DATA};
Cursor c = this.getContentResolver().query(selectedImage, filePathColumns, null,null, null);
c.moveToFirst();
int columnIndex = c.getColumnIndex(filePathColumns[0]);
String picturePath= c.getString(columnIndex);
c.close();
}
}
復制代碼
或者
復制代碼
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case 101:
Uri uri = data.getData();
Cursor cursor = this.getContentResolver().query(uri, null,
null, null, null);
cursor.moveToFirst();
String imgNo = cursor.getString(0); // 圖片編號
String imgPath = cursor.getString(1); // 圖片文件路徑
String imgSize = cursor.getString(2); // 圖片大小
String imgName = cursor.getString(3); // 圖片文件名
cursor.close();
Bitmap bitmap = BitmapFactory.decodeFile(imgPath);
break;
default:
return;
}
}
}
⑽ Android 開發中從相冊讀取的照片有時侯的方向不對,本來是豎屏的照片變成橫屏了怎麼辦
可以讀取相片的方向值,然後旋轉
讀取方向值請參照下面的代碼:
ExifInterface exifInterface = new ExifInterface(bitmapUrl);
int tag = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, -1);
然後旋轉:
int degree = 0;
if (orc == ExifInterface.ORIENTATION_ROTATE_90) {
degree = 90;
} else if (orc == ExifInterface.ORIENTATION_ROTATE_180) {
degree = 180;
} else if (orc == ExifInterface.ORIENTATION_ROTATE_270) {
degree = 270;
}
if (degrees != 0 && bitmap != null) {
Matrix m = new Matrix();
m.setRotate(degrees, (float) bitmap.getWidth() / 2, (float) bitmap.getHeight() / 2);
}