好讓開放的,我試過這段代碼:如何從位圖(棒棒堂)
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}
,看上去就像它不能做的工作。當我登錄它,它打印:
content://media/external/images/media/25756
,因爲我需要它new File(Uri)
不幫助我。奇怪的是,getImageUri方法返回Uri,但文件似乎無法識別它。任何人都有從新鮮製作的位圖檢索Uri的方法?
P.S.就我看來,自從KitKat以後,它就無法工作。
編輯 此代碼的工作,並從這個我要檢索的URI:
croppedBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri);
cropImageView = (CropImageView) findViewById(R.id.CropImageView);
cropImageView.setImageBitmap(croppedBitmap);
Button crop = ...;
crop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cropContainer.setVisibility(View.GONE);
mImageView.setVisibility(View.VISIBLE);
Bitmap croppedImage = cropImageView.getCroppedImage();
mImageView.setImageBitmap(croppedImage);
paramsContener.setVisibility(View.VISIBLE);
}
});
我基於android文檔,其中構造函數以Uri和String作爲參數。我更新了我的問題,以解釋我想從哪個位圖獲取Uri。 –
@ jeand'arme:「這段代碼正常工作,從此我想檢索Uri」 - 你已經有了'Uri'。它是你的'getBitmap()'調用的第二個參數。如果你的意思是你想從'CropImageView'中獲得某種裁剪後的輸出,並且它返回一個'Bitmap',並且你希望'File'指向'Bitmap',那麼使用'compress()'將它寫入'FileOutputStream'來將'Bitmap'寫入'File'。 – CommonsWare
哦,我忘了添加缺失的拼圖,它是'Bitmap croppedImage = cropImageView.getCroppedImage();'並且我想從中獲得它。這就是爲什麼那個來自第二個爭論的Uri不會做這份工作。 –