zoukankan      html  css  js  c++  java
  • Android初级开发第七讲特效和数据传递处理


    博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved !

    大家好,相信大家对iphone上的特效早有耳闻,特效不仅给人以炫丽的感觉,也给人以性能优越的感觉;但万丈高楼平地起,基础是关键,今天就跟大家分享下基本的特效是怎么做成的。


    1、点击效果

    跟图片放在一起,写成一个xml文件,一个简单的点前点后的效果如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:drawable="@drawable/bar_bt_active" android:state_pressed="true"/>
        <item android:drawable="@drawable/bar_bt"/>
    
    </selector>
    state_pressed代表点击后,其实还有很多状态的参数,如focused当前焦点在此控件上,selected选择的时候等

    2、当可以用一个页面显示多种表现时,可以用到visibility

    visibility有三种属性:

    visible可见,并占有空间位置

    invisible不可见,并占有空间位置

    gone不可见,不占空间位置

    如果写一个邮箱的应用,收件箱、发件箱、垃圾箱功能差不多,只不过按钮不同,就需要用到这个属性。

    第一隐藏该隐藏的图片,第二用setImageResource改变图片背景

    3、Animation

    安卓自带了很多动画事件,如渐渐消失的fade.xml

    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
           android:interpolator="@android:anim/accelerate_interpolator"
           android:fromAlpha="0.0" android:toAlpha="1.0"
           android:duration="@android:integer/config_longAnimTime" />
    可以通过android.R.anim.fade引用

    push_left_in,从左进入

    <set xmlns:android="http://schemas.android.com/apk/res/android">
    	<translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
    	<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
    </set>
    这些效果,可以用在activity的加载、窗口的加载等出现消失时

    4、还有很多自定义的特效,欢迎大家去网上自己找找

    开源中国社区:http://www.oschina.net/android/116/
    5、数据传递处理

    方法一、通过intent对象,intent.putExtras(key ,value),然后通过getIntent().getExtras().get(key)获取value值

    方法二、通过sharedPreference,它就像一个写在本地的小数据包一样,简便实用,总共不过六行代码,但功能强大

    	 SharedPreferences sp=getSharedPreferences(命名缓存对象名,Context.MODE_PRIVATE);
    		 sp.getInt(存入对象key, 默认value);
    		 Editor editor = sp.edit();
    		 editor.putInt(key, value);
    		 editor.commit();
    里面可以放无数个集合,可以只命名一个存储对象名。

    方法三、set get方法或者静态数据构建缓存对象包

    方法四、发送消息--广播
    广播有两种,一种在manifest.xml中注册,一种在类中创建。
    区别,第一种永生,第二种与当前activity绑定。
    第一步:定义一个广播接收类:
    BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver();
    第二步:注册该广播
    registerReceiver(mReceiver, intentFilter); 
    第三步:触发响应
    sendBroadcast(mIntent); 
    方法五、异步处理--handler
    第一步,声明并实现其内部方法
    private Handler mHandler = new Handler(){  
    public void handleMessage(Message msg) {switch (msg.what) {
    case 1:  //处理方法  break;  }}; };  
    第二步,发送消息
     Message message = new Message();  
     message.what = 1;  
     mHandler.sendMessage(message); 

    6、数据共享

    有很多时候,两个activity,或者一个项目,前两个比较简单,我们来简单说下两个应用之间进行数据共享

    1、如上写缓存SharedPreference

    2、将共享数据写入sqlite或者文本

    3、如上,发广播或者使用Service,这块作者没有深入研究。


    谢谢!

  • 相关阅读:
    C#之app.config、exe.config和vshost.exe.config作用区别
    C#中decimal ,double,float的区别
    C#中取整,向上取,向下取
    mybatis中的#和$的区别
    mybatis在xml文件中处理大于号小于号的方法
    ORACLE分页查询SQL语法——高效的分页
    移除powerdesigner中Recent Files中无效链接的文件
    Visual Studio提示“无法启动IIS Express Web服务器”的解决方法
    ORA-12638: 身份证明检索失败 的解决办法
    态度决定一切《跟任何人都聊得来》
  • 原文地址:https://www.cnblogs.com/fengju/p/6174482.html
Copyright © 2011-2022 走看看