1

ここでの回答の多くの助けを借りて、タブレットで撮影した写真をそれらのイメージビューを作成することで線形レイアウトに追加することができました。ページビューアーには、レイアウトがカスタム コントロールのように、同じレイアウトのコピーが多数読み込まれます。各レイアウトには、写真を撮り、それを独自の線形レイアウトに追加する (または追加する必要がある) ボタンがあります。

しかし....

写真を撮った後、リニアビューに配置されますが、正しいページにはありません。

このコードを使用すると、線形レイアウトに配置されます。

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

    Bitmap mBitmap;
    String _path = Environment.getExternalStorageDirectory().toString() + File.separator + "photo_" + String.valueOf(requestCode) + ".png";
    mBitmap = BitmapFactory.decodeFile(_path);
    if (mBitmap == null) {
        // bitmap still null
    } else {

        byte[] imageData = null;

        try {

            final int THUMBNAIL_SIZE = 64;

            Float width = new Float(mBitmap.getWidth());
            Float height = new Float(mBitmap.getHeight());
            Float ratio = width / height;
            mBitmap = Bitmap.createScaledBitmap(mBitmap, (int) (THUMBNAIL_SIZE * ratio), THUMBNAIL_SIZE, false);

            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            imageData = baos.toByteArray();

        } catch (Exception ex) {

        }


        ImageView iv = new ImageView(this);
        LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        iv.setLayoutParams(params);
        iv.setImageBitmap(mBitmap);
        iv.setTag(_path);


        LinearLayout lvp = (LinearLayout) findViewById(R.id.lvPhotos);
        lvp.addView(iv);

    }

}

明らかに、作成されたイメージビューにこれを使用するべきではありませんが、カメラのボタンがクリックされたページのコンテキストを取得するにはどうすればよいですか?

RG、エリック

4

1 に答える 1

2

わかりました、あなたの問題はここにあります:

LinearLayout lvp = (LinearLayout) findViewById(R.id.lvPhotos);

現在のコンテンツ ビューに配置されている linearlayout を見つけます。あなたはそれがどのリニアにあるべきかを見つける必要があります...

LinearLayout lvp = (LinearLayout) someView.findViewById(R.id.lvPhotos);

しかし、それは本当に良い解決策ではないと思います。ビューのインスタンスを保持するように配列を設定すると、より簡単に見つけることができます...

于 2012-11-09T22:56:35.157 に答える