2016-09-05 7 views
0

イメージの実際のパスを含むURIオブジェクトがあります。私はクエリ中に選択文字列を使用する必要があることを知っているが、私はSQLで悪いです。指定されたパスのカーソルを取得

どのようにしてカーソルがそのイメージを表すようにできますか?

これは私のDTO用の私の投影文字列です。

String[] projection = { 
      MediaStore.Images.ImageColumns._ID, 
      MediaStore.Images.ImageColumns.DISPLAY_NAME, 
      MediaStore.Images.ImageColumns.DATA, 
      MediaStore.Images.ImageColumns.WIDTH, 
      MediaStore.Images.ImageColumns.HEIGHT, 
      MediaStore.Images.ImageColumns.MIME_TYPE}; 

そして、Uriはトリミングライブラリから戻ってくる。

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK && requestCode == UCrop.REQUEST_CROP) { 
     final Uri resultUri = UCrop.getOutput(data); 
    } else if (resultCode == UCrop.RESULT_ERROR) { 
     final Throwable cropError = UCrop.getError(data); 
    } 
} 

ありがとうございました。

+0

「私はイメージの実際のパスを含むURIオブジェクトです」 - これはほとんどありません。 [適切に 'Uri'を使用してください(https://commonsware.com/blog/2016/03/15/how-consume-content-uri.html)。例えば、ほとんどの[画像読み込みライブラリ](http://android-arsenal.com/tag/46)は、 'Uri'から' ImageView'をどのように埋め込むかを知っています。または、ContentResolverとOpenInputStream()を使用してコンテンツの 'InputStream'を取得し、' InputStream'を 'BitmapFactory.decodeStream()'に渡します。 – CommonsWare

+0

私はUriを返す作物ライブラリを使用しています。編集された質問からそれを確認することができます。それには何も問題はありません。とにかくありがとう。乾杯。 –

+0

あなたは図書館の著者に、返された「ウリ」の規則が何かを尋ねる必要があります。 – CommonsWare

答えて

2

一般的に、Uriは、ファイルシステム上のファイルを表す必要はなく、あなたが判断できるパスはもちろんのこと、アクセスできるファイルはもちろんです。

Uriのスキームがfileの場合、getPath()はファイルシステムのパスをファイルに返します。しかし、あなたはファイルシステムを通してそのファイルへの読み書きアクセス権を持っていないかもしれません(ただしこれはUriを作成してあなたに渡した人のコーディングエラーを示しています)。コンテンツは、通常のファイルである必要がないので、Uricontentスキームを有するものである最も一般的な任意の他の種類について

は—、ファイルシステムのパスを決定する方法はありません。暗号化されたファイル、データベース内のBLOBカラムに格納されたコンテンツ、ネットワークからダウンロードされるコンテンツ、または無数の他のパタ​​ーンである可能性があります。

関連する問題