Android 使用shape制作drawable素材
Android开发中,资源文件中会有大量的图片素材文件,这样会额外增加APP的大小,有时面对对APP 大小有限制的,那就要考虑尽可能的对图片进行压缩处理或者减少资源文件中图片的数量,那么减少了资源素材文件,我们如何满足应用对图形的丰富要求呢?我们可以使用shape绘制的,有很多优点。从而满足我们的要求,下面是我整理的一些素材:
首先看最终效果:
1、主布局XML文件
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:padding="10dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="20dp"android:background="@drawable/s1"android:padding="10dp"android:text="@string/s1"android:textColor="#fff"android:textSize="16sp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="20dp"android:background="@drawable/s2"android:padding="10dp"android:text="@string/s2"android:textColor="#ff9800"android:textSize="16sp"/><ImageButtonandroid:layout_width="50dp"android:layout_height="50dp"android:layout_marginBottom="20dp"android:background="@drawable/s3"android:padding="10dp"android:scaleType="fitXY"android:src="@drawable/ic_launcher"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="20dp"android:background="@drawable/s4"android:padding="5dp"android:text="@string/s4"android:textColor="#fff"android:textSize="16sp"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="20dp"android:background="@drawable/s5"android:padding="5dp"android:text="@string/s5"android:textColor="#00bcd4"android:textSize="16sp"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="20dp"android:background="@drawable/s6"android:padding="5dp"android:text="@string/s6"android:textColor="#fff"android:textSize="16sp"/></LinearLayout>
2、shape文件
1)s1.xml
<?xmlversion="1.0"encoding="utf-8"?><shapexmlns:android="http://schemas.android.com/apk/res/android"><solidandroid:color="#23C7B2"/><cornersandroid:radius="8dp"/></shape>
2)s2.xml
<?xmlversion="1.0"encoding="utf-8"?><shapexmlns:android="http://schemas.android.com/apk/res/android"><solidandroid:color="#00000000"/><cornersandroid:radius="8dp"/><strokeandroid:width="1dp"android:color="#ff9800"/></shape>
3)s3.xml
<selectorxmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:state_pressed="true"><shapeandroid:shape="oval"><solidandroid:color="#42A0DB"/></shape></item><itemandroid:state_focused="true"><shapeandroid:shape="oval"><solidandroid:color="#42A0DB"/></shape></item><item><shapeandroid:shape="oval"><solidandroid:color="#42A0DB"/></shape></item></selector>
4)s4.xml
<selectorxmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:state_pressed="true"><shape><solidandroid:color="#7F79B5"/><cornersandroid:radius="8dp"/></shape></item><itemandroid:state_focused="true"><shape><solidandroid:color="#7F79B5"/><cornersandroid:radius="8dp"/></shape></item><item><shape><solidandroid:color="#7F79B8"/><cornersandroid:radius="8dp"/></shape></item></selector>
5)s5.xml
<selectorxmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:state_pressed="true"><shape><solidandroid:color="#e3e3e3"/><cornersandroid:radius="8dp"/><strokeandroid:width="1dp"android:color="#00bcd4"/></shape></item><itemandroid:state_focused="true"><shape><solidandroid:color="#e3e3e3"/><cornersandroid:radius="8dp"/><strokeandroid:width="1dp"android:color="#00bcd4"/></shape></item><item><shape><solidandroid:color="#00000000"/><cornersandroid:radius="8dp"/><strokeandroid:width="1dp"android:color="#00bcd4"/></shape></item></selector>
6)s6.xml
<?xmlversion="1.0"encoding="utf-8"?><selectorxmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:state_pressed="true"><layer-list><itemandroid:top="3dp"><shape><solidandroid:color="#00bcd4"/><cornersandroid:radius="8dp"/></shape></item></layer-list></item><itemandroid:state_focused="true"><layer-list><itemandroid:top="3dp"><shape><solidandroid:color="#00bcd4"/><cornersandroid:radius="8dp"/></shape></item></layer-list></item><item><layer-list><item><shape><solidandroid:color="#dddddd"/><cornersandroid:radius="8dp"/></shape></item><itemandroid:bottom="3dp"><shape><solidandroid:color="#00bcd4"/><cornersandroid:radius="8dp"/></shape></item></layer-list></item></selector>
3、String.xml
<?xmlversion="1.0"encoding="utf-8"?><resources><stringname="app_name">shape制作drawable素材</string><stringname="action_settings">Settings</string><stringname="hello_world">Helloworld!</string><stringname="s1">我是第一行</string><stringname="s2">我是第二行</string><stringname="s3">我是第三行</string><stringname="s4">我是第四行</string><stringname="s5">我是第五行</string><stringname="s6">我是第六行</string></resources>
4、主界面Activity代码
packagecom.sunny.shape;importandroid.os.Bundle;importandroid.app.Activity;importandroid.view.Menu;importandroid.view.Window;publicclassMainActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);}}
以上就是使用shape制作drawable素材,代码很详细,就不贴源码了,按照以上步骤操作就可以做出最终效果,也可以做出自己想要的喜欢样式,欢迎大家一块学习交流~
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。