Create a Material Design-style Android app-use Drawable and androiddrawable
The following Drawables functions help you implement Material Design in applications:
Image resource coloring
In android 5.0 (api 21) and later versions, bitmap and. 9 png can be colored by defining transparency. You can use color resources or topic attributes to parse color resources (for example,?android:attr/colorPrimary
). We usually create a resource and then adapt the resource to the topic.
You can color BitmapDrawable or NinePatchDrawable objects.setTint()
Method. You can useandroid:tint
Andandroid:tintMode
Set the color and mode of the color.
Extract highlight from Image
Support library r21 and later versions includePalette
Class to extract the highlighted color from an image. This class can bring up the following highlighted colors:
Vibrant is full of vigor
Vibrant dark is full of life
Vibrant light bright and Vibrant
Muted soft
Muted dark's dark softness
Muted light bright and soft
Pass a Bitmap object to the static method Palette. generate (). It will help you extract the color from the background thread in the background thread. If you cannot use this background thread, use the Palette. generateAsync () method and set a listener.
You can obtain the highlighted color from the image using the getter method in the Palette class, such as Palette. getVibrantColor.
To use the Palette method in a project, you must include the jar of the v7 package palette in the project. The gradle dependecy method is as follows:
?
12 |
... compile 'com.android.support:palette-v7:21.0.+' |
The following is the sample code:
?
123456 |
Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() { public void onGenerated(Palette palette) { // Do something with colors... palette.getVibrantColor(Color.BLACK); //get a color in rgb value } }); |
For more information, see the Paltette api documentation: http://developer.android.com/reference/android/support/v7/graphics/Palette.html
Create vector drawables
In android 5.0 and later versions, you can create a vector drawable without distortion during scaling. You only need to define a vector image file. On the contrary, to use bitmap, you need to create multiple files for different resolutions. To create a vector image, you must describe the image in detail under the tag of the xml file.
The following is an example:
?
1234567891011121314151617181920 |
<? xml version = "1.0" encoding = "utf-8" ?> <!-- res/drawable/heart.xml --> < vector xmlns:android = "http://schemas.android.com/apk/res/android" android:width = "256dp" android:height = "256dp" android:viewportHeight = "32" android:viewportWidth = "32" > <!-- draw a path --> < path android:fillColor = "#f15467" android:pathData="M20.5,9.5 c-1.955,0,-3.83,1.268,-4.5,3 c-0.67,-1.732,-2.547,-3,-4.5,-3 C8.957,9.5,7,11.432,7,14 c0,3.53,3.793,6.257,9,11.5 c5.207,-5.242,9,-7.97,9,-11.5 C25,11.432,23.043,9.5,20.5,9.5z"/> </ vector > |
The figure above shows the effect as follows:
In android, vector images are displayedVectorDrawable
Object. For more information, see Svg Path reference.
References: http://developer.android.com/training/material/drawables.html
Original article address: Workshop.
How to Use createFromXml to create a Drawable instance for android Application Development?
Try
{
XmlPullParser xp = Resources. getSystem (). getXml (R. drawable. g0 );
Drawable db = Drawable. createFromXml (getResources (), xp );
}
Catch (XmlPullParserException e)
{
E. printStackTrace ();
}
Catch (IOException e)
{
E. printStackTrace ();
}
Your error may not be in Activity. getResources () is useful only in activity. Try Content. getResources ()
In the Android Application project file, what image resources are placed in the four drawable directories under the res directory? What is the difference?
Different Resolutions.