2012-02-27 4 views
0

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

<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); 
    } 

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

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

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

+0

добавлена ​​дополнительная информация в Edit1 – MrGibbage

+0

измененная компоновка и изображение на их собственный тег android-layout и андроид-изображения. –

+0

тег merge doen't вообще не работает в моем xml, приложение не запускается. я нашел ответ здесь http://stackoverflow.com/questions/14718028/android-how-to-add-transparent-image-over-another-image – steveh

ответ

1

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