游戏技术文章

手机安全卫士——主界面的开发

时间:2017-2-5 14:09:48  作者:棋牌资源网  来源:棋牌资源网  查看:6568  评论:0
内容摘要:activity_home.xmlactivity_home.xml
复制代码
<?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" >

    <TextView  
        android:id="@+id/text1"     
        style="@style/TitleStyle"
        android:text="功能列表" />

    //自定义TextView  强制有焦点
    <com.mxn.mobilesafe.view.FocusedTextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/black"
        android:textSize="22sp"
        android:text="新消息:  今日。。。。。"
        android:singleLine="true"  //展示一行  
        android:ellipsize="marquee"//走马灯。。start省略前面的内容。。
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"       
        />
//给TextView加上这两行代码,也可以实现走马灯
<!-- android:focusableInTouchMode="true" -->
<!-- android:focusable="true" -->

    <GridView
        android:id="@+id/gv_home"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:verticalSpacing="30dp"
        android:numColumns="3" >//展示3列
    </GridView>

</LinearLayout>
复制代码
FocusedTextView.java 
复制代码
//自定义TextView,获取焦点的TextView
public class FocusedTextView extends TextView{

  //有style样式的会走此方法
    public FocusedTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }
  //有属性时的会走此方法
    public FocusedTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }
   //用代码new对象时走此方法
    public FocusedTextView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }
    
    @Override
    public boolean isFocused() {
        // 表示是否获取焦点,走马灯要运行,首先调用此函数,判断是否有焦点,是true,走马灯才会有效果。强制返回true
        return true;
    }

}
复制代码

home_list_item.xml

复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/iv_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/home_apps" />
    

    <TextView
        android:id="@+id/tv_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:textColor="@color/black"
        android:textSize="20sp"
        />

</LinearLayout>
复制代码

style.xml

复制代码
<resources>
<style name="TitleStyle">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">100dp</item>
        <item name="android:background">#8866ff00</item>
        <item name="android:textColor">@color/black</item>
        <item name="android:gravity">center</item>
        <item name="android:textSize">22sp</item>
    </style>
</resources>
复制代码

color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="black">#000</color>
    
</resources>

HomeActivity.java

复制代码
public class HomeActivity extends Activity {

    private GridView gvHome;

    private String[] mItems = new String[] { "手机防盗", "通讯卫士", "软件管理", "进程管理", "流量统计", "手机杀毒", "缓存清理", "高级工具", "设置中心" };

    private int[] mPics = new int[] { R.drawable.home_safe, R.drawable.home_callmsgsafe, R.drawable.home_apps,
            R.drawable.home_taskmanager, R.drawable.home_netmanager, R.drawable.home_trojan,
            R.drawable.home_sysoptimize, R.drawable.home_tools, R.drawable.home_settings };

    private SharedPreferences mPref;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);

        mPref = getSharedPreferences("config", MODE_PRIVATE);

        gvHome = (GridView) findViewById(R.id.gv_home);
        gvHome.setAdapter(new HomeAdapter());

        // 设置每一项的监听点击事件
        gvHome.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                switch (position) {
                case 0:
                    // 手机防盗
                    showPasswordDialog();
                    break;
                case 8:
                    // 设置中心
                    startActivity(new Intent(HomeActivity.this, SettingActivity.class));
                    break;
                case 7:
                    //高级工具
                    startActivity(new Intent(HomeActivity.this, AtoolsActivity.class));
                    break;
                case 1:
                    //通讯卫士,黑名单
                    startActivity(new Intent(HomeActivity.this,CallSafeActivity.class));
                    break;
                case 2:
                    //软件管理
                    startActivity(new Intent(HomeActivity.this,AppManagerActivity.class));
                    break;
                case 3:
                    //进程管理
                    startActivity(new Intent(HomeActivity.this,TaskManagerActivity.class));
                    break;
                case 5:
                    //病毒查杀
                    startActivity(new Intent(HomeActivity.this,AntivirusActivity.class));
                    break;
                    
                case 6:
                    //缓存清理
                    startActivity(new Intent(HomeActivity.this,CleanCacheActivity.class));
                    break;
                    
                case 4:
                    //流量管理
                    startActivity(new Intent(HomeActivity.this,TrafficManagerActivity.class));
                default:
                    break;
                }
            }
        });
    }

    /**
     * 显示密码弹窗
     */
    protected void showPasswordDialog() {
        // 判断是否设置密码
        String savedPassword = mPref.getString("password", null);
        if (!TextUtils.isEmpty(savedPassword)) {
            // 输入密码弹窗
            showPasswordInputDialog();
        } else {
            // 如果没有设置过, 弹出设置密码的弹窗
            showPasswordSetDailog();
        }
    }

    /**
     * 输入密码弹窗
     */
    private void showPasswordInputDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        final AlertDialog dialog = builder.create();

        View view = View.inflate(this, R.layout.dialog_input_password, null);
        // dialog.setView(view);// 将自定义的布局文件设置给dialog
        dialog.setView(view, 0, 0, 0, 0);// 设置边距为0,保证在2.x的版本上运行没问题

        final EditText etPassword = (EditText) view.findViewById(R.id.et_password);

        Button btnOK = (Button) view.findViewById(R.id.btn_ok);
        Button btnCancel = (Button) view.findViewById(R.id.btn_cancel);

        btnOK.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                String password = etPassword.getText().toString();

                if (!TextUtils.isEmpty(password)) {
                    String savedPassword = mPref.getString("password", null);

                    if (MD5Utils.encode(password).equals(savedPassword)) {
                        // Toast.makeText(HomeActivity.this, "登录成功!",
                        // Toast.LENGTH_SHORT).show();
                        dialog.dismiss();

                        // 跳转到手机防盗页
                        startActivity(new Intent(HomeActivity.this, LostFindActivity.class));
                    } else {
                        Toast.makeText(HomeActivity.this, "密码错误!", Toast.LENGTH_SHORT).show();
                    }
                } else {
                    Toast.makeText(HomeActivity.this, "输入框内容不能为空!", Toast.LENGTH_SHORT).show();
                }
            }
        });

        btnCancel.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                dialog.dismiss();// 隐藏dialog
            }
        });

        dialog.show();
    }

    /**
     * 设置密码的弹窗
     */
    private void showPasswordSetDailog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        final AlertDialog dialog = builder.create();

        View view = View.inflate(this, R.layout.dialog_set_password, null);
        // dialog.setView(view);// 将自定义的布局文件设置给dialog
        dialog.setView(view, 0, 0, 0, 0);// 设置边距为0,保证在2.x的版本上运行没问题

        final EditText etPassword = (EditText) view.findViewById(R.id.et_password);
        final EditText etPasswordConfirm = (EditText) view.findViewById(R.id.et_confirm);

        Button btnOK = (Button) view.findViewById(R.id.btn_ok);
        Button btnCancel = (Button) view.findViewById(R.id.btn_cancel);

        btnOK.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                String password = etPassword.getText().toString();
                String passwordConfirm = etPasswordConfirm.getText().toString();
                // password!=null && !password.equals("")
                if (!TextUtils.isEmpty(password) && !passwordConfirm.isEmpty()) {
                    if (password.equals(passwordConfirm)) {
                        // Toast.makeText(HomeActivity.this, "登录成功!",
                        // Toast.LENGTH_SHORT).show();

                        // 将密码保存起来
                        mPref.edit().putString("password", MD5Utils.encode(password)).commit();
                        dialog.dismiss();
                        // 跳转到手机防盗页
                        startActivity(new Intent(HomeActivity.this, LostFindActivity.class));
                    } else {
                        Toast.makeText(HomeActivity.this, "两次密码不一致!", Toast.LENGTH_SHORT).show();
                    }
                } else {
                    Toast.makeText(HomeActivity.this, "输入框内容不能为空!", Toast.LENGTH_SHORT).show();
                }
            }
        });

        btnCancel.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                dialog.dismiss();// 隐藏dialog
            }
        });

        dialog.show();
    }


    class HomeAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            return mItems.length;//展示多少数据
        }

        @Override
        public Object getItem(int position) {
            return mItems[position];
        }

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

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            //加载布局
            View view = View.inflate(HomeActivity.this, R.layout.home_list_item, null);
            //获取到每一项的具体内容
            ImageView ivItem = (ImageView) view.findViewById(R.id.iv_item);
            TextView tvItem = (TextView) view.findViewById(R.id.tv_item);
            //给girdview的每一项具体内容设置内容
            tvItem.setText(mItems[position]);
            ivItem.setImageResource(mPics[position]);
             //返回当前的position项
            return view;
        }

    }
}
复制代码

 

知识点:

GirdView + BaseAdapter+点击事件

自定义TextView

标签:手机安全卫士主界面的开发 

欢迎加入VIP,【VIP售价:只要288元永久VIP会员】畅享商业棋牌游戏程序下载,点击开通!

下载说明


☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,

☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!

☉唯一站长QQ:1004003180  [人格担保-本站注重诚信!]

☉购买建议E-mail:1004003180@qq.com   源码收购 E-mail:1004003180@qq.com    

☉本站文件解压密码  【文章内都自带解压密码,每个密码不同!】


本站提供的所有源码,均来源站长提供,仅学习交流 浙ICP备09009969号

由此产生不良后果和法律责任与本站无关,如果侵犯了您的版权,请来信告知 1004003180@qq.com 将及时更正和删除! 

Copyright © 2008-2022 棋牌资源网,你身边的棋牌资源下载站    All Rights Reserved