Android динамическое прозрачное изображение наложение - PullRequest
0 голосов
/ 27 февраля 2012

Мне нужно, чтобы прозрачное изображение было наложено поверх реального изображения, которое должен видеть пользователь.Изображения будут сохранены на SD-карте.Я видел много учебных пособий по этому вопросу, но они, кажется, всегда не соответствуют тому, как мне отобразить два изображения.Или, может быть, я просто скучаю по этому.В любом случае, вот мой макет

<merge 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/gallerylayout"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <ImageView
    android:id="@+id/visible_image"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
  />
  <ImageView
    android:id="@+id/colormap_overlay"
    android:background="#FF000000"      
    android:scaleType="fitXY"
    android:layout_alignTop="@id/visible_image"
    android:layout_alignBottom="@id/visible_image"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
  />
</merge>

и вот мой код:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ctx = getApplicationContext();
    setContentView(R.layout.imagepage);
    String image_overlay = Environment.getExternalStorageDirectory() + "/" + s(R.string.APP_NAME) + "/overlay.jpg";
    String visible_image = Environment.getExternalStorageDirectory() + "/" + s(R.string.APP_NAME) + "/visible.jpg";

    ImageView image = (ImageView)findViewById(R.id.visible_image);
    BitmapFactory.Options options = new BitmapFactory.Options();
    Bitmap bm = BitmapFactory.decodeFile(visible_image, options);
    image.setImageBitmap(bm);

    ImageView overlayimage = (ImageView)findViewById(R.id.colormap_overlay);
    Bitmap bm2 = BitmapFactory.decodeFile(image_overlay);
    overlayimage.setAlpha(0);
    overlayimage.setImageBitmap(bm2);
    }

Я почти уверен, что моя ошибка в моем коде.

Edit1 У меня естьсделал некоторое тестирование, и кажется, что макет XML в порядке.Я могу показать видимое изображение само по себе, но когда я показываю второе изображение (прозрачное изображение), все, что я получаю, это пустой, полностью черный дисплей.

Чтобы показать второе изображение, я просто вызываю setImageBitmap() второй раз?Я начинаю думать, что мне нужно заняться чем-то другим.

1 Ответ

1 голос
/ 27 февраля 2012

Я понял это.Мне нужно было удалить android: background = "# FF000000" из макета xml.

...