在android程式設計中,從相簿選取或是拍照選取一張**然後對其進行剪下的需求非常的多
我們先說一下思路,在android系統中就自帶了剪下的應用,所以,我們只需要將我們獲取到的相片傳給剪下應用,再將剪下好的相片返回到我們自己的介面顯示就ok了
第一步,我們可以先啟用系統或是相機來獲取相片,看**?1
2345
6789
1011
1213
1415
1617
1819
2021
2223
2425
2627
28/*
* 從相簿獲取
*/
public
void
gallery(view view)
/*
* 從相機獲取
*/
public
void
camera(view view)
// 開啟乙個帶有返回值的activity,請求碼為photo_request_carema
startactivityforresult(intent, photo_request_carema);
}
第二步,通過startactivityforresult()方法我們可以在onactivityresult()中來獲取到相應的返回值?1
2345
6789
1011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
3435
@override
protected
void
onactivityresult(
int
requestcode,
int
resultcode, intent data)
}
else
if
(requestcode == photo_request_carema)
else
}
else
if
(requestcode == photo_request_cut)
try
catch
(exception e)
}
super
.onactivityresult(requestcode,
resultcode, data);
}
第三步,注意到裡邊有乙個crop()方法,顧名思義,就是用於剪下的?1
2345
6789
1011
1213
1415
1617
1819
2021
/*
*
剪下*/
private
void
crop(uri uri)
第四步,在剪下完成後,切圖應用就會將通過onactivityresult()返回給我們
通過bitmap bitmap = data.getparcelableextra("data");我們就拿到了我們想要的bitmap
接下來拿著這個bitmap你想幹嘛就幹嘛吧
由於上邊的**涉及到讀寫sdcard,所以要記得在清單檔案中授權?1
附上幾張效果圖
小公尺拍照以及選取相簿資料為空問題
最近做專案測試小公尺機器時發現小公尺裝置在呼叫系統相機以及相簿時選取的資料一直返回為null,下面是我的解決方法 許可權申請這裡就不寫了,預設已經申請了許可權 開啟系統相機有兩種方式,一種就是指定intent然後開啟相機,另一種是指定相機拍照儲存的路徑拍照 private static final ...
從MySQL隨機選取資料
從mysql隨機選取資料 2014 06 23 從mysql隨機選取資料最簡單的辦法就是使用 order by rand 方案一 select from table order byrand limit 0,1 這種方法的問題就是非常慢。原因是因為mysql會建立一張零時表來儲存所有的結果集,然後給...
小公尺手機相簿選取後的intent為空?
一 問題現象 在小公尺手機選擇相簿 裁剪後發現拿不到 展示不出來,通過debug發現小公尺手機上的intent返回了空 override public void onactivityresult int requestcode,int resultcode,intent data buff.tost...