For example, if each row in a list had a background that was a gradient, would it be better to use a image of a gradient or to define that gradient in a shape drawable in xml? Is there is significant performance difference between the two methods?
Drawable drawable = ResourcesCompat. getDrawable (res, R. drawable. myimage, null);
A StateListDrawable is a Drawable object that uses a different image to represent the same object, depending on what state the object is in. For example, a Button can exist in one of several states (pressed, focused on, hovered over, or none of these).
Layer List. A LayerDrawable is a drawable object that manages an array of other drawables. Each drawable in the list is drawn in the order of the list—the last drawable in the list is drawn on top. Each drawable is represented by an <item> element inside a single <layer-list> element.
I just asked a similar question and it sounded like that using an image drawable is more efficient computationally than using a vector.(but i'm not expert so don't quote me on that)
It really depends on what your trying to set out to achieve in the first place. If you have completed creative assets that aren't going to change then it would make sense to create bitmaps etc from those.
However, if your prototyping or just beginning to flesh out your application where colours, sizes, transitions etc are likely to change quickly and often then bitmaps really aren't going to help your cause.
During development and up front i'd create a library of drawables i could re-use and update often. Then once everything is complete and signed off and if performance was important i'd revert to images.
If your organised enough you could perhaps use a theme or style to switch between the two.
Don't prematurely optomize. That's a really hard thing to know what will be better. I would just do it in xml since it would be easier to change.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With