2

特定のソースから画像を取得する(Uriを返す)メインプロジェクトがあります。次のステップは、画像をトリミングして拡大縮小することでした(タッチ入力)。私は最近、一部の電話メーカーがAndroidの基本クラスをいじっていることを知りました。

com.android.camera.action.crop 

常に存在するとは限りません。

そこで、トリミングを行うライブラリを見つけました。https ://github.com/lvillani/android-cropimage ライブラリをeclipseビルドパスとプロジェクトライブラリに追加しました。

私の質問は、次のようにライブラリを開くことができますか?

    Intent intent = new Intent("com.android.camera.action.CROP");  
    //intent.setClassName("com.android.camera", "com.android.camera.CropImage"); 
    intent.setDataAndType(uri, "image/*");
    intent.putExtra("crop", "true");
    intent.putExtra("output", Uri); 
    intent.putExtra("outputFormat", "JPEG");
    startActivityForResult(intent, 1);  

次に、トリミングされた画像を取得しますか、それとも何か他のことをする必要がありますか?

  1. 別の質問:これは、アプリを市場に出すときにも影響します(ユーザーは、追加のライブラリの許可をダウンロードまたは受け入れる必要がありますか?

私のアプリがすべてで動作することを確認したいので、これはそれを行うための最良の方法ですか?または、より良い方法がありますか、説明してください。(また、Android開発者にとってはかなり新しい、シンプルなものにしてください!、ありがとうございます!)

4

1 に答える 1

4

ライブラリをインストールし、それが自分のプロジェクトにリンクしていて、ビルド パスにあることを確認したら、次のようにしました。

ファイルマネージャを開く:

        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent,"Select Picture"), PICK_FROM_FILE);

または、カメラからキャプチャする場合

        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra("return-data", true);
        startActivityForResult(intent, GET_IMAGE_FROM_CAMERA);

次に、画像をトリミングします。

    Intent intent = new Intent(this, com.android.camera.CropImage.class);
    intent.setData(uri);
    intent.putExtra("return-data", true);
    startActivityForResult(intent, CROP);

いくつかのデバイスでこれをテストしましたが、問題なく動作しています。カメラにも対応。

于 2012-07-05T16:49:34.367 に答える