私はGoogle's guide Receiving Simple Data from Other Appsに続き、約束どおりにURLを取得することができました。私のアプリのアイコンは画像を共有するときに表示されています。他のアプリから受信した単純な画像データの解像度が0以下
しかし、具体的な問題は、これは、それがどのようになるで、そこにある:
if (Intent.ACTION_SEND.equals(action) && type != null) {
if (type.startsWith("image/")) {
handleSendImage(intent); // Handle single image being sent
}
}
handleSendImage(intent);
は
void handleSendImage(Intent intent) {
Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
if (imageUri != null) {
pfadPhoto = getRealPathFromURI_API19(this, imageUri);
i("handleSendImage "+pfadPhoto);
fBildVerkleinern(pfadPhoto);
}
}
public String getRealPathFromURI_API19(Context context, Uri uri){
String result;
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
if (cursor == null) { // Source is Dropbox or other similar local file path
result = uri.getPath();
} else {
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
result = cursor.getString(idx);
cursor.close();
}
return result;
}
fBildVerkleinern(pfadPhoto);
private void fBildVerkleinern(String bildpfad) {
...
iv = (ImageView)findViewById(R.id.mImageView);
int ivBreite = iv.getWidth();
int ivHoehe = iv.getHeight();
...
v = BitmapFactory.decodeFile(bildpfad); //bildpfad = pfadPhoto
...
bitmap2 = getResizedBitmap(v,(int)((float)ivBreite/vergroesserungsFaktor),ivBreite);
...
}
getResizedBitmap
public Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) {
if (bm != null) {
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = ((float) newWidth)/width;
float scaleHeight = ((float) newHeight)/height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
return resizedBitmap;
}
return null;
}
とBitmap.createBitmap
Caused by: java.lang.IllegalArgumentException: width and height must be > 0
につながるしかし、私はまた、画像選択後に実行されるonActivityResult
は
if (requestCode == CHOOSE_PHOTO) {
if (data == null) {
f("Fehler");
return;
}
pfadPhoto = getRealPathFromURI_API19(this, data.getData());
fBildVerkleinern(pfadPhoto);
...
}
のように見え、これがなく動作ファイルマネージャで行われてきました問題。
どこにエラーがありますか?