startActivity()或者finish()之后调用来指定一个效?/code>Q第一个参数是下一个activity出现的效果,W二个参数是该activity退出的效果?br />关于animationQ可以参考这文章:http://www.cnblogs.com/feisky/archive/2010/01/11/1644482.html?br />W二个CustomDialogActivityQ展CZ一个activity如何使用自定义themeQ其看h像一个dialogQ在ApiDemos Manifest.xml中对应该activity的标{下Q?br />有该属性:android:theme="@style/Theme.CustomDialog"Q引用了一个自定义的themeQ在styles.xml文g中:
1 <style name="Theme.CustomDialog" parent="android:style/Theme.Dialog">
2 <item name="android:windowBackground">@drawable/filled_box</item>
3 </style>l承自android内置的Theme.DialogQ位?base/core/res/res/values/themes.xml。其backgroundZ个自定义的shapeQ在filled_box.xml中:
1 <shape xmlns:android="http://schemas.android.com/apk/res/android">
2 <solid android:color="#f0600000"/>
3 <stroke android:width="3dp" color="#ffff8080"/>
4 <corners android:radius="3dp" />
5 <padding android:left="10dp" android:top="10dp"
6 android:right="10dp" android:bottom="10dp" />
7 </shape>solid填充Qstroke描边Qcorners圆角Qpadding内间距,关于shapeQ可以看下这文章:http://dev.10086.cn/cmdn/wiki/index.php?doc-view-6087.html?br />q儿分n一个展现渐变色背景的方法,除了ps一张渐变色的图片,也可以用shapeQ将上面代码?lt;solid>标签替换?lt;gradient>代表渐变:
1 <gradient
2 android:startColor="#52adcd"
3 android:endColor="#1c87b1"
4 android:angle="0" /> <!- angle代表角度Q?是从左往x变,可以多用几个D一?nbsp;。这个标{不能和solid标签同时出现?!>W三个CustomTitleQ如何自定义一个titleQ而不是用一个activity原来的那UtitleQ主要是3句代码:1 requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
2 setContentView(R.layout.custom_title);
3 getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1); W四个DialogActivity展示了如何一个activity看上d一个弹出的dialogQ跟W二个实例类|也是在其activity标签上加上theme属性,不过q次引用?br />是系l自qdialog themeQ@android:style/Theme.DialogQ其ơ跟W三个实例类|也用了requestWindowFeature()q个ҎQ关于这个方法,
|上有很多介l,大家可以自己搜一下,l个参考文章:http://www.cnblogs.com/salam/archive/2010/11/30/1892143.html?br />W五个看下PersistentState和SaveRestoreStateQ先说SaveRestoreState展示?code>onSaveInstanceState()保存activity状态的效果Q其实本w没做什么,
onSaveInstanceState()是当该activity可能会被pȝdestory旉认调用的Q默认会记录布局中每个view的状态,如edittext的内宏Vcheckedbox的选中状态,
你需要做的就是给每个控g加一个idQ没有id的话是无法保存状态的Q可以看下源码PhoneWindow.java中的saveHierarchyState()。一般情况下不需要你重写
onSaveInstanceState()Q但是如果你想保存除了UI状态之外的其他附加信息Q如一个成员变量的值等可以覆写,但要注意Q一定要调用
super.
onSaveInstanceState()Q以上都可以在官Ҏ档里扑ֈ?br />再说下PersistentStateQ这个展CZ使用SharedPreferences持久化的保存edittext的状态,包括光标的位|。主要是在onPause()里保存,onResume()里还原,
不多说了Q测试这两个例子Ӟ可以修改两个edittext中的值然后旋转手机,使其横屏Q这样那个activity会destory然后再create?br />W六个看下ReceiveResultQ主要展CZstartActivityForResult()的用法,q个可以用于比如从一个activity跛_另一个activity去选择一个email地址或是一张图片,
选择完毕时结果再q回l上一个activity。我按照程来介l下q个Ҏ的用法,ReceiveResult
-->SendResultQ首先先要调?br />startActivityForResult(Intent intent, int requestCode)启动SendResultQ然后在SendResultq个activity中处理,处理完调用setResult (int resultCode, Intent data)Q?br />q回到ReceiveResult中,注意setResult()后要调用finish()。最后呢在ReceiveResult中要覆写onActivityResult(int requestCode, int resultCode, Intent data)ҎQ?br />来处理返回的l果Q一些细节大家自q看例子。关于requestCodeQ可以理解成A跌{到B同时也可以蟩转到C或DQ区分是跛_哪个activityQ而resultCodeQ可以理?br />成B可以q回多个|OK或NOT OK{,区分一个activityq回的多个|可以ȝ下Redirectionq个例子Q加强对startActivityForResult
()的理解?br />q有个知识点说下Q在receiveResult的onCreate()中,mResults.setText(mResults.getText(), TextView.BufferType.EDITABLE);关于
void android.widget.TextView.setText(CharSequence text, BufferType type)q个ҎQ可以参考这文章:http://litonggang.iteye.com/blog/507200
最好结合源码来看这个方法,从TextView的setText( CharSequence text, BufferType type ) --> Editable.java --> SpannableStringBuilder.java。实际上是将原来?div>的CharSequence text扩展成SpannableStringBuilderQ以使其happend{扩展的ҎQ这儿还有个工厂模式Q有旉多读L码还是不错的?br />W七个看下QuickContactsDemoQ首先是QuickContactBadgeq个控gQ自q下配|文件。接着是ResourceCursorAdapterQ这个adapterl承在CursorAdapterQ它覆写?br />CursorAdapter的newView()ҎQ其实就一句代码,用Inflater填充指定的xml文gQ所以在q个例子的newView()Ҏ中首先调用super().newView()ҎQ将构造函C指定?br />那个layout转成viewQ然后bindView()里填充数据。最后是个viewHolder~存layout中的viewQviewHolder保证了对控g的缓存,减少了每ơfindViewById()的开销Q是优化listview的一个较好的方式?br />
1 final static class ContactListItemCache {
2 public TextView nameView;
3 public QuickContactBadge photoView;
4 public CharArrayBuffer nameBuffer = new CharArrayBuffer(128);
5 }
6 ContactListItemCache cache = new ContactListItemCache();
7 cache.nameView = (TextView) view.findViewById(R.id.name);
8 cache.photoView = (QuickContactBadge) view.findViewById(R.id.badge);
9 view.setTag(cache);最后那3个activityQ一个透明背景activity、一个透明q且模糊不清背景activity、一个用你的壁纸做背景的activity都用了自定义的themeQ可以自q看,攑ֈ自己的应用中?br />q篇ȝ先到q,有些乱?/code>

]]>