37、进程管理器--界面设计

创建android component:TaskManagerActivity,并为其创建布局文件taskmanager_layout:

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView style="@style/title_center_text"
        android:text="进程管理器"/>
    <View style="@style/splitter_view"/>
    <LinearLayout style="@style/horizontal_linearlayout">
        <Button
            android:id="@+id/bt_task_user"
            android:text="用户进程"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:gravity="center"/>
        <Button
            android:id="@+id/bt_task_system"
            android:text="系统进程"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:gravity="center"/>
    </LinearLayout>
    <RelativeLayout
        android:layout_height="match_parent"
        android:layout_width="match_parent">
        <LinearLayout
            android:orientation="vertical"
            android:layout_height="match_parent"
            android:layout_width="match_parent">
            <RelativeLayout
                android:layout_alignParentTop="true"
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:layout_weight="1">
                <ListView
                    android:id="@+id/lv_usertask"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"/>
                <ListView
                    android:id="@+id/lv_systemtask"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"/>
            </RelativeLayout>
            <LinearLayout
                android:layout_weight="0"
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:layout_alignParentBottom="true">
                <Button
                    android:onClick="selectAll"
                    android:text="全选"
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:gravity="center"/>
                <Button
                    android:onClick="oneKeyClear"
                    android:text="一键清理"
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:gravity="center"/>
            </LinearLayout>
        </LinearLayout>
    </RelativeLayout>
</LinearLayout>

技巧总结:

在垂直布局的LinearLayout中控件从上往下依次排列,除了标题外我们想把底部的空间全部使用起来,因此可以嵌入一个RelativeLayout,高度和宽度均是match_parent,

这样的属性不会遮挡住标题头,而是从已经排列的控件开始排列。

然后在这个RelativeLayout中设置一个垂直布局的LinearLayout,并且全部填充父容器。在里面的包含listview的容器设置layout_weight为1,包含底部button的容器的layout_weight为0,表示包含listview的容器占满剩余空间。


listview的每一个item的布局文件可以参考《33、程序管理器--界面设计》,只是在右侧多了一个checkbox而已:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:id="@+id/ll_taskmanager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/iv_taskmanager_icon"
        android:layout_height="60dip"
        android:layout_width="60dip"
        android:layout_weight="0"
        android:layout_gravity="left"/>
    <RelativeLayout
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TextView style="@style/content_text"
            android:id="@+id/tv_taskmanager_name"
            android:layout_alignParentTop="true"
            android:singleLine="true"
            android:ellipsize="end"
            android:textSize="20sp"/>
        <TextView style="@style/content_text"
            android:id="@+id/tv_taskmanager_mem"
            android:layout_alignParentBottom="true"
            android:textSize="12sp"/>
    </RelativeLayout>
    <CheckBox
        android:layout_weight="0"
        android:id="@+id/cb_taskmanager"
        android:focusable="false"
        android:clickable="false"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content" />
</LinearLayout>

点击“一键清理”杀死所选进程,弹出自定义吐司:


吐司代码:

package com.example.mobilesafe.engine;

import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import com.example.mobilesafe.R;

/**
 * Created by sing on 14-1-26.
 * desc:
 */
public class MyToast {
    private static final String TAG = "MyToast";

    /**
     * 显示自定义的土司
     * @param text 显示的内容
     */
    public static void showToast(Context context, String text) {
        Toast toast = new Toast(context);
        View view = View.inflate(context, R.layout.mytoast, null);
        TextView tv = (TextView) view.findViewById(R.id.tv_toast);
        //设置显示内容
        tv.setText(text);
        toast.setView(view);
        //设置Toast显示的时长。0表示短,1表示常
        toast.setDuration(1);
        //设置Toast显示在窗体中的位置(这里是显示在窗体中央)
        toast.setGravity(Gravity.CENTER, 0, 0);
        //将Toast显示出来
        toast.show();
    }
}
吐司的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="horizontal" 
    android:background="@drawable/call_locate_orange"
    >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/notification" />

    <TextView
        android:id="@+id/tv_toast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:text="我是土司" />

</LinearLayout>


最后在MainActivity中添加代码:

case 3: //进程管理
                        intent = new Intent(MainActivity.this, TaskManagerActivity.class);
                        startActivity(intent);
                        break;


你可能感兴趣的:(37、进程管理器--界面设计)