programmatically create layer-list

前端 未结 1 677
野的像风
野的像风 2021-01-17 20:12

I am trying to programmatically create a layer-list with resized bitmaps as items. From what I have seen BitmapDrawable has been deprecated. The new constructor requires the

1条回答
  •  走了就别回头了
    2021-01-17 20:50

    You mentioned that you want to make a layer list from a couple of bitmaps. What you have is largely correct, all you need to do is take each bitmap object and turn it into a BitmapDrawable. To do this you can use:

    BitmapDrawable layer1 = new BitmapDrawable(context.getResources(), bitmap1);
    

    If you are in an activity when you do this you don't even need to call context.getResources(), just getResources().

    Then you will take all your layers and create your LayerDrawable, much like you already are:

    Drawable[] layers = {layer1, layer2, layer3};
    LayerDrawable splash_test = new LayerDrawable(layers);
    

    (note that layer3 will be above layer2 and layer2 will be above layer1).

    Once you have the LayerDrawable you can set it on the background of your view using view.setBackgoundDrawable(drawable) (on API 16 and greater) or view.setBackground(drawable) (on pre API 16). This post shows how to check the device version and call the appropriate method if you are supporting pre 16 devices.

    If you want to position the layers relative to each other then you will also need to use setLayerInset() as you have in your code, but I would recommend that you try that after getting your layer-list to display.

    0 讨论(0)
提交回复
热议问题