1

私はアンドロイド開発が初めてで、現在プロジェクトを開発しています。このプロジェクトは、ビットマップを使用して画像を画面にロードすることです。画像を画面に読み込んだ後、読み込まれたビットマップの上にアイコン/ドローアブルを追加して保存したいと思います。

これは、単一の画像を画面にロードするために使用した私のコードの一部です。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    switch (requestCode){
    case SELECT_PICTURE_ACTIVITY_REQUEST_CODE:
        if (resultCode == RESULT_OK){
            Uri selectedImage = data.getData();
            String[] filePathColumn = {MediaStore.Images.Media.DATA};
            Cursor cursor = getContentResolver().query(selectedImage, filePathColumn,
                    null, null, null);
            if (cursor.moveToFirst()){
                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                String filePath = cursor.getString(columnIndex);
                Bitmap bitmap = BitmapFactory.decodeFile(filePath);
                targetImage.setImageBitmap(bitmap);
            }
            cursor.close();
        }
        break;
    }
}

ここに私のxmlコードがあります:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ImageView
    android:id="@+id/background"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</ImageView>

私のxmlコードには、画面全体が私の写真を表示するために使用されることを意味するだけが含まれています。

今、ビットマップの上にいくつかのアイコンまたはドローアブルをロードして保存する方法に問題がありますか? オプションメニューに「追加」オプションがあります。オプションメニューで「追加」ボタンを押すと、ドローアブルファイルにいくつかのアイコン/ドローアブルを表示するリストがあり、アイコンを選択した後、選択したアイコン元のビットマップ画像の上に表示されます。また、アイコンを任意の場所にドラッグして保存できると思います。

助けてください、そしてそれは非常に緊急です!

どうもありがとう!

4

1 に答える 1

0

なぜこのように問題にアプローチしているのか、私には100%わかりません。背景をプライマリ ドローアブルに設定した標準レイアウトの方がうまくいくと思いますが、LayerDrawable が探しているものだと思います。

Drawable[] layers = new Drawable[2];
layers[0] = bitmap;
layers[1] = icon;
... add more here

LayerDrawable layerDrawable = new LayerDrawable(layers);
targetImage.setImageDrawable(layerDrawable);
于 2012-05-03T19:35:48.240 に答える