<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-cn">
		<id>http://wiki.tomtalk.net/index.php?action=history&amp;feed=atom&amp;title=UI</id>
		<title>UI - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.tomtalk.net/index.php?action=history&amp;feed=atom&amp;title=UI"/>
		<link rel="alternate" type="text/html" href="http://wiki.tomtalk.net/index.php?title=UI&amp;action=history"/>
		<updated>2026-04-24T04:09:42Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>http://wiki.tomtalk.net/index.php?title=UI&amp;diff=3903&amp;oldid=prev</id>
		<title>Tom：/* 自定义Shape加上阴影shadow之方法 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.tomtalk.net/index.php?title=UI&amp;diff=3903&amp;oldid=prev"/>
				<updated>2014-06-28T08:59:28Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;自定义Shape加上阴影shadow之方法&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Android | 返回上一级]]&lt;br /&gt;
&lt;br /&gt;
=UI基础=&lt;br /&gt;
&lt;br /&gt;
==view类setVisibility()取值==&lt;br /&gt;
&lt;br /&gt;
# VISIBLE:0  意思是可见的&lt;br /&gt;
# INVISIBILITY:4 意思是不可见的，但还占着原来的空间&lt;br /&gt;
# GONE:8  意思是不可见的，不占用原来的布局空间&lt;br /&gt;
&lt;br /&gt;
==控件的三个基本属性==&lt;br /&gt;
&lt;br /&gt;
这三个基本属性分别是:&lt;br /&gt;
# id&lt;br /&gt;
# layout_width&lt;br /&gt;
# layout_height&lt;br /&gt;
&lt;br /&gt;
id不多说，就是控件的编号，最好是一个控件一个编号以免引用时出现二义性；&lt;br /&gt;
&lt;br /&gt;
layout_ width: 控件的宽度；&lt;br /&gt;
&lt;br /&gt;
layout_ height: 控件的高度。&lt;br /&gt;
&lt;br /&gt;
layout_width和layout_height，都有三个既定值，即”fill_parent”、”match_parent”、” wrap_content”。&lt;br /&gt;
&lt;br /&gt;
前两者含义相同，只是说法不同，如果你的程序需要兼容低版本（2.1以下）Android系统，那就使用”fill_parent”，其含义就是与装载自己的容器相同，即容器有多大空间，控件就占据多大的空间，最大的parent就是手机屏幕。&lt;br /&gt;
&lt;br /&gt;
而最后一个” wrap_content”，就是控件内容有多大，控件就有多大。&lt;br /&gt;
&lt;br /&gt;
除了这三个既定值外，我们还可以用数值任意指定控件大小，但必须有单位。&lt;br /&gt;
&lt;br /&gt;
单位符号&lt;br /&gt;
&lt;br /&gt;
* mm    毫米        与日常生活中我们说的毫米一样，物理意义&lt;br /&gt;
* in    英寸        与日常生活中我们说的英寸一样，物理意义&lt;br /&gt;
* pt    点        1pt=1/72英寸，物理意义&lt;br /&gt;
* px    像素        即屏幕的实际像素&lt;br /&gt;
* dp    设备独立像素    使显示的大小与屏幕密度无关，推荐使用&lt;br /&gt;
* sp    放大像素    与dp类似，主要用于文字的显示&lt;br /&gt;
&lt;br /&gt;
==按钮如何响应点击事件==&lt;br /&gt;
&lt;br /&gt;
按钮控件可以在res\layout\main.xml中设置，如：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Button android:id=&amp;quot;@+id/BTN_MYTEST&amp;quot;&lt;br /&gt;
     android:layout_width=&amp;quot;wrap_content&amp;quot; &lt;br /&gt;
     android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
     android:layout_gravity=&amp;quot;center_horizontal&amp;quot;&lt;br /&gt;
     android:text=&amp;quot;TEST&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在主java文件的onCreat()函数中，首先使用&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
super.onCreate(savedInstanceState);&lt;br /&gt;
setContentView(R.layout.main_view);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
将窗口控件布局在界面上。然后使用&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Button btnTest = (Button)findViewById(R.id.BTN_MYTEST);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
得到界面上的按钮控件。然后使用下面的语句来实现按钮对点击实现的响应：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
btnTest.setOnClickListener(this);//若想要按钮响应点击事件，就必须先设置此语句。&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CheckBox控件的定义及事件监听==&lt;br /&gt;
&lt;br /&gt;
http://blog.sina.com.cn/s/blog_49dffa3b0100xfex.html&lt;br /&gt;
&lt;br /&gt;
==Tween动画 (渐变、缩放、位移、旋转)==&lt;br /&gt;
&lt;br /&gt;
http://blog.csdn.net/feng88724/article/details/6318430&lt;br /&gt;
&lt;br /&gt;
==UI界面随输入法自适应==&lt;br /&gt;
&lt;br /&gt;
http://blog.csdn.net/feng88724/article/details/6186037&lt;br /&gt;
&lt;br /&gt;
==viewFlipper切换多个layout界面==&lt;br /&gt;
&lt;br /&gt;
一  http://www.eoeandroid.com/thread-90753-1-1.html&lt;br /&gt;
&lt;br /&gt;
二  http://www.eoeandroid.com/thread-90754-1-1.html&lt;br /&gt;
&lt;br /&gt;
三  http://www.eoeandroid.com/thread-90759-1-1.html&lt;br /&gt;
&lt;br /&gt;
==Layout位移动画==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void next_animator() {&lt;br /&gt;
    DisplayMetrics metric = new DisplayMetrics();&lt;br /&gt;
    getWindowManager().getDefaultDisplay().getMetrics(metric);&lt;br /&gt;
    int width = metric.widthPixels; // 屏幕宽度（像素）&lt;br /&gt;
&lt;br /&gt;
    Animation translateAnimation = new TranslateAnimation(width, 0, 0, 0);&lt;br /&gt;
    translateAnimation.setDuration(300);&lt;br /&gt;
&lt;br /&gt;
    LinearLayout tv_item_type = (LinearLayout) findViewById(R.id.ly_question);&lt;br /&gt;
    tv_item_type.startAnimation(translateAnimation);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==android y axis rotation animation==&lt;br /&gt;
http://www.inter-fuser.com/2009/08/android-animations-3d-flip.html&lt;br /&gt;
&lt;br /&gt;
==滑屏实现==&lt;br /&gt;
&lt;br /&gt;
http://blog.csdn.net/qinjuning/article/details/7419207&lt;br /&gt;
&lt;br /&gt;
http://blog.csdn.net/qinjuning/article/details/7247126&lt;br /&gt;
&lt;br /&gt;
==自定义Shape加上阴影shadow之方法==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;layer-list xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&amp;gt;  &lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;item&amp;gt;  &lt;br /&gt;
        &amp;lt;shape android:shape=&amp;quot;rectangle&amp;quot;&amp;gt;  &lt;br /&gt;
            &amp;lt;solid android:color=&amp;quot;#792a03&amp;quot; /&amp;gt;  &lt;br /&gt;
            &amp;lt;corners android:radius=&amp;quot;19dp&amp;quot; /&amp;gt;  &lt;br /&gt;
        &amp;lt;/shape&amp;gt;  &lt;br /&gt;
    &amp;lt;/item&amp;gt;  &lt;br /&gt;
       &lt;br /&gt;
    &amp;lt;item  android:top=&amp;quot;1px&amp;quot;&amp;gt;  &lt;br /&gt;
        &amp;lt;shape android:shape=&amp;quot;rectangle&amp;quot;&amp;gt;  &lt;br /&gt;
            &amp;lt;gradient android:startColor=&amp;quot;#ffdb8f&amp;quot; android:endColor=&amp;quot;#ffdb8f&amp;quot;  &lt;br /&gt;
                android:angle=&amp;quot;270&amp;quot; /&amp;gt;  &lt;br /&gt;
            &amp;lt;padding android:left=&amp;quot;5dp&amp;quot; android:top=&amp;quot;3dp&amp;quot; android:right=&amp;quot;5dp&amp;quot;  &lt;br /&gt;
                android:bottom=&amp;quot;3dp&amp;quot; /&amp;gt;  &lt;br /&gt;
            &amp;lt;corners android:radius=&amp;quot;20dp&amp;quot; /&amp;gt;  &lt;br /&gt;
        &amp;lt;/shape&amp;gt;  &lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;/item&amp;gt;  &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/layer-list&amp;gt;  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
将以上xml存成btn_test, 放到res/drawable/目录下。 将该drawable xml设为一个TextView的backgroiund。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;TextView  &lt;br /&gt;
    android:background=&amp;quot;@drawable/btn_test&amp;quot;  &lt;br /&gt;
    android:layout_marginTop=&amp;quot;20dip&amp;quot;  &lt;br /&gt;
    android:layout_marginLeft=&amp;quot;5dip&amp;quot;  &lt;br /&gt;
    android:textColor=&amp;quot;#792a03&amp;quot;            &lt;br /&gt;
    android:text=&amp;quot;1天2小时14分20秒&amp;quot;  &lt;br /&gt;
    android:layout_width=&amp;quot;wrap_content&amp;quot;    &lt;br /&gt;
    android:layout_height=&amp;quot;wrap_content&amp;quot; /&amp;gt;  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Dialog对话框==&lt;br /&gt;
&lt;br /&gt;
http://www.cnblogs.com/xiaoluo501395377/p/3419398.html&lt;br /&gt;
&lt;br /&gt;
=EditText=&lt;br /&gt;
&lt;br /&gt;
==截获与监听输入事件==&lt;br /&gt;
&lt;br /&gt;
http://www.android-study.com/jichuzhishi/154.html&lt;br /&gt;
&lt;br /&gt;
==文本控件inputType属性==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
android:inputType=&amp;quot;none&amp;quot;--输入普通字符&lt;br /&gt;
android:inputType=&amp;quot;text&amp;quot;--输入普通字符&lt;br /&gt;
android:inputType=&amp;quot;textCapCharacters&amp;quot;--输入普通字符&lt;br /&gt;
android:inputType=&amp;quot;textCapWords&amp;quot;--单词首字母大小&lt;br /&gt;
android:inputType=&amp;quot;textCapSentences&amp;quot;--仅第一个字母大小&lt;br /&gt;
android:inputType=&amp;quot;textAutoCorrect&amp;quot;--前两个自动完成&lt;br /&gt;
android:inputType=&amp;quot;textAutoComplete&amp;quot;--前两个自动完成&lt;br /&gt;
android:inputType=&amp;quot;textMultiLine&amp;quot;--多行输入&lt;br /&gt;
android:inputType=&amp;quot;textImeMultiLine&amp;quot;--输入法多行（不一定支持）&lt;br /&gt;
android:inputType=&amp;quot;textNoSuggestions&amp;quot;--不提示&lt;br /&gt;
android:inputType=&amp;quot;textUri&amp;quot;--URI格式&lt;br /&gt;
android:inputType=&amp;quot;textEmailAddress&amp;quot;--电子邮件地址格式&lt;br /&gt;
android:inputType=&amp;quot;textEmailSubject&amp;quot;--邮件主题格式&lt;br /&gt;
android:inputType=&amp;quot;textShortMessage&amp;quot;--短消息格式&lt;br /&gt;
android:inputType=&amp;quot;textLongMessage&amp;quot;--长消息格式&lt;br /&gt;
android:inputType=&amp;quot;textPersonName&amp;quot;--人名格式&lt;br /&gt;
android:inputType=&amp;quot;textPostalAddress&amp;quot;--邮政格式&lt;br /&gt;
android:inputType=&amp;quot;textPassword&amp;quot;--密码格式&lt;br /&gt;
android:inputType=&amp;quot;textVisiblePassword&amp;quot;--密码可见格式&lt;br /&gt;
android:inputType=&amp;quot;textWebEditText&amp;quot;--作为网页表单的文本格式&lt;br /&gt;
android:inputType=&amp;quot;textFilter&amp;quot;--文本筛选格式&lt;br /&gt;
android:inputType=&amp;quot;textPhonetic&amp;quot;--拼音输入格式&lt;br /&gt;
android:inputType=&amp;quot;number&amp;quot;--数字格式&lt;br /&gt;
android:inputType=&amp;quot;numberSigned&amp;quot;--有符号数字格式&lt;br /&gt;
android:inputType=&amp;quot;numberDecimal&amp;quot;--可以带小数点的浮点格式&lt;br /&gt;
android:inputType=&amp;quot;phone&amp;quot;--拨号键盘&lt;br /&gt;
android:inputType=&amp;quot;datetime&amp;quot;&lt;br /&gt;
android:inputType=&amp;quot;date&amp;quot;--日期键盘&lt;br /&gt;
android:inputType=&amp;quot;time&amp;quot;--时间键盘&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==文本框始终在输入法之上==&lt;br /&gt;
&lt;br /&gt;
简单说来就是采用相对布局。设置下这个布局始终在某个位置，然后设置要显示的内容为居中布局，这样，当输入法弹出的时候，由于中间空间不足，自然就会伸缩。等于说利用安卓本身的机制实现。&lt;br /&gt;
&lt;br /&gt;
==EditText自动清空==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
EditText editText = (EditText)findViewById(R.id.edit_text);&lt;br /&gt;
editText.getText().clear();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==文本框中的输入类型演示==&lt;br /&gt;
&lt;br /&gt;
http://www.cqniit.com/item_show.php?id=164&amp;amp;tid=3&lt;br /&gt;
&lt;br /&gt;
==设置EditText字体颜色、背景色==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
view_hello.setBackgroundColor(R.color.white);&lt;br /&gt;
view_hello.setTextColor(R.color.orange);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==获取、设置EditText的文本==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class TestAndriodActivity extends Activity {&lt;br /&gt;
    /** Called when the activity is first created. */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
    	&lt;br /&gt;
        super.onCreate(savedInstanceState);&lt;br /&gt;
        setContentView(R.layout.main);&lt;br /&gt;
        &lt;br /&gt;
        //用EditText前，请先:import android.widget.EditText;&lt;br /&gt;
        //获取文本框1的文本&lt;br /&gt;
        String str1=&amp;quot;&amp;quot;;&lt;br /&gt;
        EditText editText1 =(EditText)findViewById(R.id.editText1);&lt;br /&gt;
        str1=editText1.getText().toString();&lt;br /&gt;
        &lt;br /&gt;
        //将文本框1的文本赋给文本框2&lt;br /&gt;
        EditText editText2 =(EditText)findViewById(R.id.editText2); &lt;br /&gt;
        editText2.setText(str1.toCharArray(), 0, str1.length());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spinner=&lt;br /&gt;
&lt;br /&gt;
==基本使用方法==&lt;br /&gt;
&lt;br /&gt;
http://blog.csdn.net/greenappple/article/details/7046947&lt;br /&gt;
&lt;br /&gt;
==设置值==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
for (int i = 0; i &amp;lt; list.size(); i++) {&lt;br /&gt;
    if (type.equals(list.get(i))) {&lt;br /&gt;
        mySpinner.setSelection(i);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==选中后显示字体的颜色设置==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {&lt;br /&gt;
    public void onItemSelected(AdapterView&amp;lt;?&amp;gt; arg0, View arg1, int arg2, long arg3) {&lt;br /&gt;
        TextView view = (TextView) arg1;&lt;br /&gt;
        view.setTextColor(0xff333333);    //设置颜色&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==设置item字体大小样式==&lt;br /&gt;
&lt;br /&gt;
spinner_item.xml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;TextView xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    android:id=&amp;quot;@android:id/text1&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
    android:ellipsize=&amp;quot;marquee&amp;quot;&lt;br /&gt;
    android:gravity=&amp;quot;left&amp;quot;&lt;br /&gt;
    android:padding=&amp;quot;4sp&amp;quot;&lt;br /&gt;
    android:singleLine=&amp;quot;true&amp;quot;&lt;br /&gt;
    android:textColor=&amp;quot;#FFFFFF&amp;quot;&lt;br /&gt;
    android:textSize=&amp;quot;16sp&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
activity.java&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
adapter = new ArrayAdapter&amp;lt;String&amp;gt;(this, R.layout.spinner_item, list);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=ListView=&lt;br /&gt;
==Android ListView用法==&lt;br /&gt;
&lt;br /&gt;
http://www.iteye.com/topic/540423&lt;br /&gt;
&lt;br /&gt;
==Update single item in ListView==&lt;br /&gt;
&lt;br /&gt;
http://erikw.eu/android-update-single-item-in-listview/&lt;br /&gt;
&lt;br /&gt;
http://stackoverflow.com/questions/2123083/android-listview-refresh-single-row&lt;/div&gt;</summary>
		<author><name>Tom</name></author>	</entry>

	</feed>