1

私はアンドロイドが初めてです。多くの検索を行ったが、任意の形状で画像を手動でトリミングして保存するための可能な解決策を見つけることができません。助けてください。

また、私の少しの知識で、私はアイデアを得ました(それが機能するかどうかはわかりません)。

それは:

public boolean onTouchEvent(MotionEvent event) {
int eventaction = event.getAction();

    switch (eventaction) {
case MotionEvent.ACTION_MOVE:
            // finger moves on the screen

**Here code for getting X & Y positions and dynamically cropping side by side.**

}

助けてください...

4

2 に答える 2

1

以下のように、デフォルトの Android Crop 機能を使用できます。

private void imageCrop(Uri picUri) {
    try {

        Intent cropIntent = new Intent("com.android.camera.action.CROP");
        // indicate image type and Uri
        cropIntent.setDataAndType(picUri, "image/*");
        // set crop properties
        cropIntent.putExtra("crop", "true");
        // indicate aspect of desired crop
        cropIntent.putExtra("aspectX", 1);
        cropIntent.putExtra("aspectY", 1);
        // indicate output X and Y
        cropIntent.putExtra("outputX", 128);
        cropIntent.putExtra("outputY", 128);
        // retrieve data on return
        cropIntent.putExtra("return-data", true);
        // start the activity - we handle returning in onActivityResult
        startActivityForResult(cropIntent, PIC_CROP);
    }
    // respond to users whose devices do not support the crop action
    catch (ActivityNotFoundException anfe) {
        // display an error message
        String errorMessage = "Whoops - your device doesn't support the crop action!";
        Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);
        toast.show();
    }
}

上部のアクティビティで定数変数を宣言します。

final int PIC_CROP = 1;

そして、onActivity の結果メソッドに、次のコードを記述します。

  @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == PIC_CROP) {
        if (data != null) {
            // get the returned data
            Bundle extras = data.getExtras();
            // get the cropped bitmap
            Bitmap selectedBitmap = extras.getParcelable("data");

            imgView.setImageBitmap(selectedBitmap);
        }
    }

}

これができる方法です。これがお役に立てば幸いです。

于 2013-08-02T07:56:48.027 に答える