編輯:關於Android編程
有時候我們需要的圖片並不適合我們想要的大小, 那麼我們就可以用到系統自帶的圖片裁剪功能, 把規定范圍的圖像給剪出來。
貼上部分代碼:
[javascript]
//調用圖庫
Intent intent = new Intent();
intent.setType("image/*");
intent.putExtra("crop", "true"); // crop=true 有這句才能出來最後的裁剪頁面.
intent.putExtra("aspectX", 5); // 這兩項為裁剪框的比例.
intent.putExtra("aspectY", 4);
//輸出地址
intent.putExtra("output", Uri.fromFile(new File("SDCard/1.jpg")
intent.putExtra("outputFormat", "JPEG");//返回格式
[javascript] view plaincopy
startActivityForResult(Intent.createChooser(intent, "選擇圖片"), 1);
[java]
//調用相機
Intent intent = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE, null);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
"SDCard/1.jpg")));
startActivityForResult(intent, 2);
在調用了以上任意一種方法後, 系統會返回onActivityResult, 我們在這個方法中處理就可以了
[java]
/**
* 獲取返回的相片
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == 0)
return;
if (requestCode == 2)//調用系統裁剪
{
File picture = new File(mPhotoCachePath[mSelectedPhoto]);
startPhotoZoom(Uri.fromFile(picture));
} else if (requestCode == PHOTO_CODE)//得到裁剪後的圖片
{
try
{
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
Bitmap bitmap = BitmapFactory.decodeFile("SDCard/1.jpg", options);
if (bitmap != null)//保存圖片
{
mCacheBitmap = bitmap;
FileOutputStream fos = null;
fos = new FileOutputStream(mPhotoCachePath[mSelectedPhoto]);
mCacheBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
}
} catch (Exception e)
{
// TODO: handle exception
}
}
super.onActivityResult(requestCode, resultCode, data);
}
/**
* 裁剪圖片
* @param uri
*/
public void startPhotoZoom(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");// crop=true 有這句才能出來最後的裁剪頁面.
intent.putExtra("aspectX", 5);// 這兩項為裁剪框的比例.
intent.putExtra("aspectY", 4);// x:y=1:2
intent.putExtra("output", Uri.fromFile(new File(mPhotoCachePath[mSelectedPhoto])));
intent.putExtra("outputFormat", "JPEG");//返回格式
startActivityForResult(intent, PHOTO_CODE);
}
開發Android APP微信支付功能,需要完成三個步驟:第一步生成預支付訂單、第二步生成微信支付參數、第三步調起微信APP支付。除了需要審核通過的APP應用外,還需要獲
Android系統中的ContextMenu(上下文菜單)類似於PC中的右鍵彈出菜單,當一個視圖注冊到一個上下文菜單時,執行一個在該對象上的“長按”動作,將出
最近在研究一塊TI公司的TMDEVM-AM3358開發板,這是一款硬件資源相當豐富並且性能非常好的工業評估板,我重點需要用到板上的網卡、串口以及CAN總線。眾所周知,在a
要學好活動(Activity),就必須要了解android中Activity的聲明周期,靈活的使用生命周期,可以開發出更好的程序,在android中是使用任務來管理活動的