我的手机管家(11) 网络助手 界面设计及适配器

我的手机管家(11)   网络助手  界面设计

使用一个 <SlidingDrawer>标签用来布局一个抽屉样式

两个属性要注意: 一个是内容布局id,   手柄id

  android:content="@+id/content"
  android:handle="@+id/handle"
 android:orientation="vertical"   抽出的方向
 <SlidingDrawer
        android:id="@+id/drawer"
        android:layout_width="match_parent"
        android:layout_height="200dp"
    android:content="@+id/content"
    android:handle="@+id/handle"
        android:orientation="vertical" >
<?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="match_parent"
    android:orientation="vertical" >

    <TableLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TableRow>

            <TextView
                android:layout_column="1"
                android:padding="3dip"
                android:text="2G/3G总流量" />

            <TextView
                android:layout_gravity="right"
                android:gravity="right"
                android:padding="3dip"
                android:text="wifi总流量" />
        </TableRow>

        <View
            android:layout_height="2dip"
            android:background="#FF909090" />

        <TableRow>

            <TextView
                android:id="@+id/gprs"
                android:layout_column="1"
                android:padding="3dip" />

            <TextView
                android:id="@+id/wifi"
                android:layout_gravity="right"
                android:gravity="right"
                android:padding="3dip"
                android:text="" />
        </TableRow>

        <View
            android:layout_height="2dip"
            android:background="#FF909090" />
    </TableLayout>

    <SlidingDrawer
        android:id="@+id/drawer"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:content="@+id/content"
        android:handle="@+id/handle"
        android:orientation="vertical" >

        <ImageView
            android:id="@id/handle"
            android:layout_width="88dip"
            android:layout_height="44dip"
            android:src="@drawable/detail" />

        <LinearLayout
            android:id="@id/content"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:padding="8dip"
                    android:text="图标" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:padding="12dip"
                    android:text="名称" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:padding="15dip"
                    android:text="上传" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:padding="15dip"
                    android:text="下载" />
            </LinearLayout>

            <ListView
                android:id="@+id/nt_lv_content"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:fastScrollEnabled="true" />
        </LinearLayout>
    </SlidingDrawer>

</LinearLayout>

效果图:

展示数据使用的是ListView  就会有item布局
头标   应用名称    上传数据    下载数据

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_height="wrap_content"
         android:orientation="horizontal"
         android:paddingBottom="4dip" android:layout_width="fill_parent">
         <ImageView     

               android:id="@+id/ItemImage"
               android:layout_height="48px"
               android:layout_width="48px"
               android:padding="6dip"
         />
         <TextView
               android:layout_width="105px"
               android:layout_height="wrap_content"
               android:id="@+id/ItemText"
               android:padding="6dip">
         </TextView>
                  <TextView
               android:layout_width="105px"
               android:layout_height="wrap_content"
               android:id="@+id/ItemText01"
               android:padding="6dip">
         </TextView>
                           <TextView
               android:layout_width="105px"
               android:layout_height="wrap_content"
               android:id="@+id/ItemText02"
               android:padding="6dip">
         </TextView>
</LinearLayout>   

适配器:

package com.chb.myphonesave.adapter;

import java.util.ArrayList;

import android.content.Context;
import android.content.pm.ResolveInfo;
import android.net.TrafficStats;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.chb.myphonesave.R;
import com.chb.myphonesave.util.TrafficDataUtil;

public  class MyNetworkAdapter extends BaseAdapter{

    private  LayoutInflater inflater;
    private ArrayList<ResolveInfo> lists;
    private Context context;
    public MyNetworkAdapter(Context context,ArrayList<ResolveInfo> _lists){
        this.context = context;
        inflater = LayoutInflater.from(context);
        this.lists = _lists;
    }

    public int getCount() {
        return lists.size();
    }

    public Object getItem(int position) {
        return lists.get(position);
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        if(null == convertView){
            convertView = inflater.inflate(R.layout.network_helper_item, null);
            holder = new ViewHolder();
            holder.iv = (ImageView) convertView.findViewById(R.id.ItemImage);
            holder.tv1 = (TextView) convertView.findViewById(R.id.ItemText);
            holder.tv2 = (TextView) convertView.findViewById(R.id.ItemText01);
            holder.tv3 = (TextView) convertView.findViewById(R.id.ItemText02);
            convertView.setTag(holder);
        }else {
            holder = (ViewHolder) convertView.getTag();
        }
        final ResolveInfo info = lists.get(position);
        holder.iv.setImageDrawable(info.loadIcon(context.getPackageManager()));
        holder.tv1.setText(info.loadLabel(context.getPackageManager()));
        final long totalTx = TrafficStats.getUidTxBytes(            info.activityInfo.applicationInfo.uid);
    final long totalRx = TrafficStats.getUidRxBytes(            info.activityInfo.applicationInfo.uid);
        holder.tv2.setText(TrafficDataUtil.getTrafficData(totalTx));
        holder.tv3.setText(TrafficDataUtil.getTrafficData(totalRx));
        return convertView;
    }
    class ViewHolder{
        ImageView iv;
        TextView tv1;
        TextView tv2;
        TextView tv3;
        TextView tv4;
    }
}
时间: 2024-08-03 08:57:57

我的手机管家(11) 网络助手 界面设计及适配器的相关文章

android项目 之 来电管家(1) ----- 界面设计

因为需要,最近几天忙着写来电管家这个小软件,现在已经基本写的差不多了,基本的功能也都已实现,就剩下后续的完善了,而之前的记事本项目最近几天没写,但是肯定还是会完成的. 来电管家的基本功能,这里主要做的是拦截. 1.    添加黑白名单 2.    选择拦截模式 3.    启用拦截时间段 4.    拦截开关 主要功能,就是通过用户选择开启拦截,并选择拦截模式,这时就会启动后台监听服务,监听来电,判断是否挂断,并且,用户可以自由选择拦截时间段,也就是在该时间段内才启用监听服务. 先来看界面:  

我的手机管家(12) 网络助手 逻辑代码

public class public class TrafficStats extends Object 提供网络流量统计的类.这些统计数据包括字节发送和接收网络发送和接收的数据包, 在所有的接口,在手机界面,并对每一个用户基础.这些统计数据可能无法在所有平台上使用.如果该设备不支持统计数据,则将返回 UNSUPPORTED . 接收和发送数据包  static long getMobileRxPackets() 自设备启动后的整个移动网络中接收的数据包的返回数.  static long g

我的手机管家(1) 主界面

我的手机管家 主界面布局文件: <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" a

我的手机管家(5)骚扰拦截 布局界面

我的手机管家(5)骚扰拦截   布局界面: 添加黑名单, 拦截信息,和电话 主界面: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_

我的手机管家(14) 缓存处理 界面设计

我的手机管家(14)  缓存处理 界面设计 界面简单不介绍了 <?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="

Android应用打开手机的网络设置界面

App应用离不开与服务器进行网络交互,但是有时间在网络信息不好的时间,我们要给用户提示让进行网络设置,在我们应用中一般会有一个网络加载错误(失败)的页面,上面有操作控件,点击可以进入手机的网络设置界面,代码很简单: /**intent对象*/ Intent intent = null; /**判断手机系统的版本 即API大于10 就是3.0或以上版本及魅族手机*/ if (android.os.Build.VERSION.SDK_INT > 10 && !android.os.Bui

网络助手的NABCD分析

我们小组这次做的软件名字叫为校园网络助手.本校校园网分为内网与外网认证两种,并且有着流量限制,所以我们设计出来了这项软件,它主要有着两项功能:一键WIFI与校内网盘. N--need.在学校里每当流量不够用了的时候,我们就会向朋友借他们的账号以便上网,我们这个就是可以自己储存每个用户修改的IP,以便下次使用时可以快速切换:在我们学校每到11.30就会自动断一次网,外网自动下线,所以在被窝里面上网好好的突然掉线是十分不爽的事情,这个可以自动帮组你开启wifi.另一项就是帮助你没有带U盘时通过这项功

手机卫士-11

手机卫士-11 课1 看门狗WatchDogService程序优化 程序锁不断打开关闭打开关闭,有时还是有界面没及时切换过来 有一瞬间还看见程序的界面,隐私还是保护得不够好 原因是看门狗里WatchDogService.java里死循环,整个死循环的周期有一定的事件,所以会产生多次打开程序锁而界面没切换过来 那是因为应用程序还不够优化 //该标志符用来控制是否不断刷新 flag = true; new Thread() { //其实该service所做的事件就是创建一个死循环,不断查看tempS

对网络助手的NABCD分析心得

Sunny--Code团队::刘中睿,杜晓松,郑成 我们小组这次做的软件名字叫为校园网络助手.在大学学习的同学都知道学校里面有着内网与外网两种,并且有着流量限制,所以我们设计出来了这项软件,它主要有着两项功能:一键WIFI与校内网盘. N--need.在学校里每当流量不够用了的时候,我们就会向朋友借他们的账号以便上网,我们这个就是可以自己储存每个用户修改的IP,以便下次使用时可以快速切换:在我们学校每到11.30就会自动断一次网,外网自动下线,所以在被窝里面上网好好的突然掉线是十分不爽的事情,这