Let us see how to use layer drawable. You can have two or more bitmaps on different layers to create such a drawable
Using xml:
You should use layer-list in your xml file to create layerdrawable. Here is layer.xml
android:gravity="top|left"/>
android:gravity="top|left"/>
android:gravity="top|left"/>
We are using three different bitmaps whiteicon.png, redicon.png and blueicon.png which are present in /res/drawable/mdpi folder. All these are of different sizes and aligned to top left. This drawable can be used as a background to any widget in your program.
Button b = (Button)findViewById(R.id.button1);
b.setBackgroundResource(R.drawable.layer);
Now the button would look like this
Using code:
Next let us see how to create layerdrawable using the code.
private LayerDrawable createBmp(){
BitmapDrawable d1 = (BitmapDrawable) getResources().getDrawable(R.drawable.blueicon);
d1.setGravity(Gravity.LEFT);
BitmapDrawable d2 = (BitmapDrawable) getResources().getDrawable(R.drawable.redicon);
d1.setGravity(Gravity.LEFT);
BitmapDrawable d3 = (BitmapDrawable) getResources().getDrawable(R.drawable.blueicon);
d3.setGravity(Gravity.LEFT);
Drawable drawableArray[]= new Drawable[]{d3,d2,d1};
LayerDrawable layerDraw = new LayerDrawable(drawableArray);
layerDraw.setLayerInset(1, 15, 15, 0, 0);//set offset of 2 layer
layerDraw.setLayerInset(2,40,40,0,0);//set offset for third layer
return layerDraw;
}
It is important to arrange your bitmaps properly and give offsets so that bigger bitmap does not overlap smaller one completely.
And in code add this drawable as a background to some widget.
LayerDrawable ld = createBmp();
b.setBackgroundDrawable(ld);
Now here is our layer drawable image
Using xml:
You should use layer-list in your xml file to create layerdrawable. Here is layer.xml
android:gravity="top|left"/>
android:gravity="top|left"/>
android:gravity="top|left"/>
We are using three different bitmaps whiteicon.png, redicon.png and blueicon.png which are present in /res/drawable/mdpi folder. All these are of different sizes and aligned to top left. This drawable can be used as a background to any widget in your program.
Button b = (Button)findViewById(R.id.button1);
b.setBackgroundResource(R.drawable.layer);
Now the button would look like this
Using code:
Next let us see how to create layerdrawable using the code.
private LayerDrawable createBmp(){
BitmapDrawable d1 = (BitmapDrawable) getResources().getDrawable(R.drawable.blueicon);
d1.setGravity(Gravity.LEFT);
BitmapDrawable d2 = (BitmapDrawable) getResources().getDrawable(R.drawable.redicon);
d1.setGravity(Gravity.LEFT);
BitmapDrawable d3 = (BitmapDrawable) getResources().getDrawable(R.drawable.blueicon);
d3.setGravity(Gravity.LEFT);
Drawable drawableArray[]= new Drawable[]{d3,d2,d1};
LayerDrawable layerDraw = new LayerDrawable(drawableArray);
layerDraw.setLayerInset(1, 15, 15, 0, 0);//set offset of 2 layer
layerDraw.setLayerInset(2,40,40,0,0);//set offset for third layer
return layerDraw;
}
It is important to arrange your bitmaps properly and give offsets so that bigger bitmap does not overlap smaller one completely.
And in code add this drawable as a background to some widget.
LayerDrawable ld = createBmp();
b.setBackgroundDrawable(ld);
Now here is our layer drawable image


0 comments:
Post a Comment