当前位置:操作系统 > 安卓/Android >>

Android API Demos学习 - Activity部分

1. Hello World
基本的显示 Android API Demos学习(1) - Hello World
 
2. Save & Restore State
保存和恢复UI状态。 Android API Demos学习(2) - Save & Restore State  
3. Persistent State
永久保存用户偏好。 Android API Demos学习(3) - Persistent State  
4. Receive Result
启动其他activity,并且从子activity中接收返回数据。 Android API Demos学习(4) - Receive Result  
5. Forwarding
启动另一个Activity的时候,把当前Activity移出保存Activity的历史堆栈,就是说,按BACK键的时候不会再返回前一个Activity。
实现很简单,就是启动其他Activity的时候,用finish()结束当前Activity。
public void onClick(View v)
        {
            // Here we start the next activity, and then call finish()
            // so that our own will stop running and be removed from the
            // history stack.
            Intent intent = new Intent();
            intent.setClass(Forwarding.this, ForwardTarget.class);
            startActivity(intent);
            finish();
        }
 
6. Redirection
利用保存的数据判断启动哪个Activity。
本例中判断是否保存了数据,如果没有保存就进入RedirectGetter中,有的话显示在RedirectMain中。
if (!loadPrefs()) {
            Intent intent = new Intent(this, RedirectGetter.class);
            startActivityForResult(intent, INIT_TEXT_REQUEST);
        }
 
7. Translucent
显示半透明的背景。 www.zzzyk.com
先看AndroidManifest.xml中的定义:
<activity android:name=".app.TranslucentActivity"
                android:label="@string/activity_translucent"
                android:theme="@style/Theme.Translucent">
这里调用了Theme.Translucent主题,这个主题在/res/values/styles.xml中定义:
<style name="Theme.Translucent" parent="android:style/Theme.Translucent">
        <item name="android:windowBackground">@drawable/translucent_background</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:colorForeground">#fff</item>
    </style>
android:windowBackground在/res/values/colors.xml中被设置为#e0000000,前面的e0是设置透明度的。
 
8. TranslucentBlur
带特效的半透明背景。
<style name="Theme.Transparent">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
        <item name="android:windowBackground">@drawable/transparent_background</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:colorForeground">#fff</item>
    </style>
android:windowAnimationStyle设置跳转动画效果。
 getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
                WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
上面这句实现了模糊效果。
 
9. Dialog Activity
把Activity的主题设为Dialog,让Activity看起来像一个对话框。
<activity android:name=".app.DialogActivity"
                android:label="@string/activity_dialog"
                android:theme="@android:style/Theme.Dialog">
另外可以设置对话框上面的图标,如下:
getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, 
                android.R.drawable.ic_dialog_alert);
 
10. Custom Title
自定义标题栏。
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.custom_title);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1);
其中requestWindowFeature是激活扩展的窗口属性,这里设置的Window.FEATURE_CUSTOM_TITLE是自定义标题。
getWindow().setFeatureInt定义标题的样式。如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView android:id="@+id/left_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="@string/custom_title_left" />
    <TextView android:id="@+id/right_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="@string/custom_title_right" />
</RelativeLayout>
定义了相对型的布局,把title分为左右两个部分。
 
11. Animation
自定义两个Activity切换时的动画。
public void onClick(View v) {
            // Request the next activity transition (here starting a new one).
            startActivity(new Intent(Animation.this, Controls1.class));
            // Supply a custom animation.  This one will just fade the new
            // activity on top.  Note that we need to also supply an animation
            // (here just doing nothing for the same amount of time) for the
            // old activity to prevent it from going away too soon.
            overridePendingTransition(R.anim.fade, R.anim.hold);
        }
overridePendingTransition (int enterAnim, int exitAnim)必须定义在StartActivity(Intent)或是 Activity.finish()之后来定义两个Activity切换时的动画,enterAnim 为新Activity出现时动画效果,exitAnim则定义了当前Activity退出时动画效果。
a. 先看fade.xml和hold.xml:<
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,