今天写一个关于自定义图片的,写这篇文章主要是怕自己以后忘记(唉,现在记性不好,总是前学后忘)。
自定义图片其实很简单,先看下效果图
其实就是“自定义图片”那几个字的边框,下面来看下代码。
package com.wubp.w_shape_drawable;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) this.findViewById(R.id.textView);
}
}
布局文件activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/text_background"
android:text="自定义图片" />
</RelativeLayout>
主要是看TextView的
android:background="@drawable/text_background"
这个属性
最主要的是下一步:
在drawable文件夹下新建一个text_background.xml文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" > <!-- 这里指定了我现在要画的是一个矩形 -->
<stroke
android:width="1dip"
android:color="#ff333333" /> <!-- 这个就是一个画笔啦,现在指定了画笔的大小,还有颜色 -->
<corners android:radius="12dip" /> <!-- 现在这里指定我这个矩形是圆角的,12是那个圆角的值 -->
<solid android:color="@color/background" /> <!-- 边框颜色 -->
<padding
android:bottom="2dip"
android:left="8dip"
android:right="8dip"
android:top="2dip" /> <!-- 这个是内距 -->
</shape>
好了,就这么简单。
我们经常会看到有的按钮当点击时会变暗一下,其实这个效果也是用到我们这部分的知识,下面我们来实现一下
首先我们要准备三张不一样的图片如下
将这三张图片放在drawable文件下,然后在drawable下创建一个save_button.xml文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/memo_softkey_button_press" android:state_pressed="true"/>
<item androdi:drawable="@drawable/memo_softkey_button_focus" android:state_focused="true"/>
<item android:drawable="@drawable/memo_softkey_button"/>
</selector>
然后我们就可以在创建button时直接用,用法和使用图片一样:
android:background="@drawable/save_button"
<Button
android:id="@+id/button"
android:layout_width="180dp"
android:layout_height="60dp"
android:background="@drawable/save_button"
android:text="确定" />
这样就达到了我们要的效果。