手机安全卫士01

手机安全卫士day01


今天实现效果如下这里写图片描述

目标实现:
1.开始动画,欢迎界面 done
2.初始导航 done
3.版本信息没做。。。
每个应用在第一打开时都有个欢迎动画,那我们今天就来实现它

第一步,实现欢迎动画

<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.safephone.WelcomeMainActivity" >
<ImageView
    android:id="@+id/welcome_iv"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:src="@drawable/ic_sheep" />
</RelativeLayout>

目标:边旋转边放大
有三个动画 旋转0-360 缩放0-1 透明度 0-1

public class WelcomeMainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);
    ImageView imageView = (ImageView) findViewById(R.id.welcome_iv);
    /**
     * animation conbine
     */
    AnimationSet set = new AnimationSet(false);
    // 边旋转边放大
    RotateAnimation rotateAnimation = new RotateAnimation(0,360, Animation.RELATIVE_TO_SELF, 0.5f,
            Animation.RELATIVE_TO_SELF, 0.5f);
    rotateAnimation.setDuration(3000);// 设置时间为两秒
    rotateAnimation.setFillAfter(true);// 设置最终状态为填充效果
    set.addAnimation(rotateAnimation);// 将旋转动画添加到动画集合中
    /**
     * 
     */
    ScaleAnimation scaleAnimation=new ScaleAnimation(
            0, 1, 
            0, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    rotateAnimation.setDuration(3000);// 
    rotateAnimation.setFillAfter(true);// 设置最终状态为填充效果
    set.addAnimation(scaleAnimation);// 将缩放动画添加到动画集合中
    /**
     * 第三个动画来自xml
     */
    Animation animation=AnimationUtils.loadAnimation(this, R.anim.alpha);
    set.addAnimation(animation);// 将透明度动画添加到动画集合中
    set.setAnimationListener(new AnimationListener() {
        //begin
        @Override
        public void onAnimationStart(Animation animation) {
            // TODO Auto-generated method stub

        }
        //repeat
        @Override
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub

        }
        //end
        @Override
        public void onAnimationEnd(Animation animation) {
            // TODO Auto-generated method stub
            ToastUtils.show(getApplicationContext(), "欢迎来到德莱联盟");
            //the animation end enter the guideActivity
            Intent intent=new Intent();
            intent.setClass(getApplicationContext(), GuideActivity.class);
            startActivity(intent);
            finish();
        }
    });
    imageView.startAnimation(set);      
}

}

效果如下这里写图片描述

第二步,实现导航的轮播效果

主要代码

public class ActivityGuide extends Activity {
private List<ImageView> mPageList;
private Context context;
private Button btn;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.guidelayout);
    ViewPager mGuideViewPager = (ViewPager) findViewById(R.id.viewpager);
    btn = (Button) findViewById(R.id.guide_enter_btn);
    // page list
    context = this;
    // init page
    initpage();
    // 2.initdata by adapter
    mGuideViewPager.setAdapter(new PagerAdapter() {
        // is the view from object or from fragment
        @Override
        public boolean isViewFromObject(View arg0, Object arg1) {
            // TODO Auto-generated method stub
            return arg0 == arg1;
        }

        // view items count
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return mPageList == null ? 0 : mPageList.size();
        }

        // DESTORY the view items
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            // TODO Auto-generated method stub
            container.removeView(mPageList.get(position));
        }

        /**
         * init view items pass position container ViewGroup ViewPager
         */
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            // TODO Auto-generated method stub
            container.addView(mPageList.get(position));
            return mPageList.get(position);
        }
    });
    // 3、对viewpage进行监听
    mGuideViewPager.addOnPageChangeListener(new OnPageChangeListener() {
        //当页面被选择则回调该方法
        @Override
        public void onPageSelected(int position) {
            if(position==(mPageList.size()-1)){
                btn.setVisibility(View.VISIBLE);
            }else{
                btn.setVisibility(View.GONE);
            }
        }
        //页面滚动回调该方法
        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {

        }
        //当页面滚动状态改变
        @Override
        public void onPageScrollStateChanged(int arg0) {

        }
    });
}

//
private void initpage() {
    // TODO Auto-generated method stub
    mPageList = new ArrayList<ImageView>();
    ImageView imageView = new ImageView(context);
    imageView.setBackgroundResource(R.drawable.guide_1);
    mPageList.add(imageView);
    ImageView imageView2 = new ImageView(context);
    imageView2.setBackgroundResource(R.drawable.guide_2);
    mPageList.add(imageView2);
    ImageView imageView3 = new ImageView(context);
    imageView3.setBackgroundResource(R.drawable.guide_3);
    mPageList.add(imageView3);

}

public void entersystem(View view) {
    Intent intent = new Intent(this, SplashActivity.class);
    startActivity(intent);
    finish();
}
}

Viewpage是viewgroup的子类
能实现水平的滑动效果
来看布局文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <!-- ViewPager -->

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/viewpager"
        android:background="#44000000"
        android:gravity="center"
        android:orientation="vertical"
        android:padding="5dip" >

        <!-- Banner的文字描述 -->

        <TextView
            android:id="@+id/tv_banner_text_desc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/white" />

        <!-- 小圆点的父控件 -->

        <LinearLayout
            android:id="@+id/ll_dot_group"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="5dip"
            android:gravity="center_horizontal"
            android:orientation="horizontal" >
        </LinearLayout>
    </LinearLayout>

    <Button
        android:id="@+id/guide_enter_btn"
        android:layout_width="135dp"
        android:layout_height="45dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:visibility="gone"
        android:onClick="entersystem"
        android:background="@drawable/guide_btn_seletor"
        android:textColor="@color/guide_btn_color_seletor"
        android:layout_marginBottom="55dp"
        android:text="开始体验" />

</RelativeLayout>

毕竟是项目 细节不是太好说的清楚,主要是看大概然后跟着流程一步一步来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.整体项目采用MVC框架,是对android知识点的综合应用,用到的技术有 (activity,service,broadcast,content provider,Notification , 数据库,自定义title,自定义控件,自定义toast,widget,aidl进程间通讯, javascript和java的互相调用等) 2.介绍了listview和gridview等控件的优化技巧,提升软件的效率 3.穿插介绍了企业开发中的bug管理,mantis的使用,自动化测试robotium的使用 ,log管理. 软件的打包,混淆,反编译和三方广告的加入等技巧。 该项目主要涵盖以下几大功能: 手机防盗: 根据预设参数, 判断手机是否被盗,根据自定义协议发送手机中sim卡的信息和手机的位置信息给安全号码. 可以自定义特殊号码,拨号快速进入手机防盗功能,可远程通过短信指令,给手机设置锁屏密码, 远程锁定手机屏幕, 远程格式化手机sd卡,恢复出厂设置,极大的保护用户的隐私安全,通过aidl注册admin设备,一般用户无法卸载该程序。 通讯卫士: 来电号码归属地显示,来电归属地位置的调整,来电黑名单/短信黑名单管理. 电话短信备份和还原. 保护手机的数据和通讯安全。 软件管理: 系统软件和本地软件,可以显示软件的详细信息,启动,删除应用程序.连接获取服务器上软件的评分信息等功能。程序锁可以指定要保护的程序, 用户进入要保护的程序之前必须输入密码。 任务管理: 显示当前系统运行的进程信息 显示系统内存信息, 可以杀死某个进程,批量杀死进程,通过桌面widget 实时展现用户当前的手机内存状态。 上网管理: 显示出每个程序wifi和3g/2g 访问的上传和下载的流量,帮助用户了解程序产生的流量信息. 漫游管理. 当检查到手机处于漫游状态时会提示用户。 手机杀毒:从服务器下载最新的病毒库, 根据程序的包名和程序的数字签名识别病毒,提示用户并查杀. 恶意软件,吸费木马无处可藏。 系统优化: 清理手机缓存,提高手机性能,优化电池管理 高级工具: 自动ip拨号,手机号码归属地查询,更改归属地位置,常用号码查询。 安全专题: 1、通过0权限上传下载数据,重启手机等案例,深入讲解android沙箱,安全机制和权限模型。 2、通过分析恶意代码的提权漏洞,讲解如何维护系统的安全。 3、通过linux键盘驱动案例的讲解,分析盗号木马的原理及其实现方式。 4、恶意软件发展速度的确一日千里,安全软件也要与时俱进,世面上的手机病毒已经具有了可以杀掉安全软件的功能, 通过多进程互相守护案例,讲述如何实现安全软件的自我保护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值