1

カメラからビットマップをキャプチャして画像ビューに設定できる別のStackOverflowチュートリアルに従いました。私が抱えている問題は、返される画像が非常に小さく、画面の残りの部分を埋めていないことです。私のXMLでは、次のことを行います...

<ImageView 
     android:id="@+id/imgview" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

「fill_parent」に変更すると、より大きな画像が表示されますが、実際のサイズの画像を取得して、スクロール可能な(x方向とy方向の両方の)ビューコンテナに配置するにはどうすればよいでしょうか。

ありがとう!

ところで、これがカメラからビットマップをキャプチャするためのコードです...

public class MainActivity extends Activity implements OnClickListener
{
private ImageView imageView;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.d("matt","1");

    Button b = (Button)this.findViewById(R.id.btn);
    imageView = (ImageView)this.findViewById(R.id.imgview);

    b.setOnClickListener(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

@Override
public void onClick(View v)
{
    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(cameraIntent,1888);
}

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    if(requestCode == 1888)
    {
        Log.d("matt", "3.a");
        Bitmap photo = (Bitmap) data.getExtras().get("data");
        Log.d("matt", "3.b");
        imageView.setImageBitmap(photo);
        Log.d("matt", "3.c");
    }
}
4

2 に答える 2

1

キャプチャする画像のサイズが必要な場合は、次を使用できます。

int height = photo.getHeight();
int width = photo.getWidth();

それ以外の場合、キャプチャされた画像のサイズ(メガバイト単位)を知りたい場合は、この質問に対する私の回答を参照してください:https ://stackoverflow.com/a/11846455/1512836

[編集]-画像ビューをスクロールするには、これを確認してください:AndroidのScrollViewの画像

于 2012-08-16T20:53:23.763 に答える
1

呼び出し元は、このイメージが書き込まれる場所を制御するために、追加のEXTRA_OUTPUTを渡すことができます。EXTRA_OUTPUTが存在しない場合、小さいサイズの画像が追加フィールドのビットマップオブジェクトとして返されます。これは、小さな画像のみが必要なアプリケーションに役立ちます。EXTRA_OUTPUTが存在する場合、フルサイズの画像はEXTRA_OUTPUTのURI値に書き込まれます。

于 2013-04-23T09:51:54.040 に答える