一:开启另一个activity,另一个activity销毁时返回数据

步骤:

1. 开启activity并且获取返回值

startActivityForResult(intent, 0);(请求码,可定义)


2. 在新开启的界面里面实现设置数据的逻辑
Intent data = new Intent();
data.putExtra("phone", phone);
//设置一个结果数据,数据会返回给调用者
setResult(0, data);(返回码,可定义)
finish();//关闭掉当前的activity,才会返回数据

3. 在开启者activity里面实现方法
onActivityResult(int requestCode, int resultCode, Intent data) 
//通过data获取返回的数据


二:handler使用

Message msg =Message.obtain();  //从全局池中返回一个message实例,避免多次创建message(如new Message)      msg.obj = data;      msg.what=1;   //标志消息的标志      handler.sendMessage(msg);
 private Handler handler = new Handler(){       @Override       public void handleMessage(Message msg) {           super.handleMessage(msg);           switch (msg.what) {      //判断标志位               case 1:                   /**                     获取数据,更新UI                    */                   break;           }       } };

三:帧动画和activity跳转动画

1帧动画

<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android"    android:oneshot="true">    <item android:drawable="@drawable/image1" android:duration="500" />    <item android:drawable="@drawable/image2" android:duration="500" />    <item android:drawable="@drawable/image3" android:duration="500" />animation-list>

mView.setBackgroundResource(R.drawable.frame);

AnimationDrawable mAnimationDrawable = (AnimationDrawable) mView.getBackground();

mAnimationDrawable.start();

2activity跳转动画

Intent mIntent = new Intent(this, TestActivity.class);startActivity(mIntent);overridePendingTransition(R.anim.enter_anim, R.anim.exit_anim);
@Overridepublic void finish() {    super.finish();    overridePendingTransition(R.anim.enter_anim, R.anim.exit_anim);}
PS:一定要在startActivity或者finishd的后面调用


四:view动画与属性动画

1.区别

Android3.0之前提供的补间动画机制还算相对比较健全的,比如你的需求中只需要对View进行移动、缩放、旋转和淡入淡出的操作,那么补间动画已经足够健全了。但是,如果一旦需求超出了这四种操作,补间动画就无能为力了。 
例如,我们需要改变View的宽度,这个时候就不能通过补间动画实现。此外,补间动画还有一个最大的缺陷,就是它只是改变了View的显示效果而已,并不会真正的改变View的属性。具体来说,例如屏幕左上角有一个Button,使用补间动画将其移动到右下角,此刻你去点击右下角的Button,它是绝对不会响应点击事件的,因此其作用区域依然还在左上角。只不过是补间动画将其绘制在右下角而已

视图动画的基类是Animation,而属性动画的基类是Animator

4.点击问题View动画新位置无法触发点击事件,属性动画旧位置无法触发点击事件。

2.View动画(视图动画)

 动画可以写在xml中,也可以java代码中动态new出animation。

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/accelerate_decelerate_interpolator"     android:shareInterpolator="true"    android:fillAfter="true">    <translate        android:duration="100"        android:fromXDelta="0.0f"        android:fromYDelta="0.0f"        android:toXDelta="100.0f"        android:toYDelta="100.0f" />    <scale        android:fromXScale="0.0f"        android:fromYScale="0.0f"        android:pivotX="0.0f"        android:pivotY="0.0f"        android:toXScale="1.0f"        android:toYScale="1.0f" />    <rotate        android:fromDegrees="0.0f"        android:pivotX="0.0f"        android:pivotY="0.0f"        android:toDegrees="30.0f" />    <alpha        android:fromAlpha="0.0f"        android:toAlpha="1.0f" />set>
java代码中使用view动画(使用上面的xml动画)

View mView = findViewById(R.id.mView);Animation mAnimation = AnimationUtils.loadAnimation(this,R.anim.slide_bottom_in);mView.startAnimation(mAnimation);
java代码设置并使用view动画(使用java new出来的动画)

AlphaAnimation mAlphaAnimation = new AlphaAnimation(0 , 1);mAlphaAnimation.setDuration(300);mView.startAnimation(mAlphaAnimation);mAlphaAnimation.setAnimationListener(new Animation.AnimationListener() {            @Override            public void onAnimationStart(Animation animation) {                //动画开始            }            @Override            public void onAnimationEnd(Animation animation) {                //动画结束            }            @Override            public void onAnimationRepeat(Animation animation) {                //动画重新运行            }        });

3属性动画

###位移:
* 第一个参数target指定要显示动画的组件
* 第二个参数propertyName指定要改变组件的哪个属性
* 第三个参数values是可变参数,就是赋予属性的新的值
* 传入0,代表x起始坐标:当前x + 0
* 传入100,代表x终点坐标:当前x + 100


//具有get、set方法的成员变量就称为属性
ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "translationX", 0, 100) ;


###缩放:
* 第三个参数指定缩放的比例
* 0.1是从原本高度的十分之一开始
* 2是到原本高度的2倍结束


ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "scaleY", 0.1f, 2);
###透明:
* 透明度,0是完全透明,1是完全不透明

ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "alpha", 0.1f, 1);
###旋转
* rotation指定是顺时针旋转
* 20是起始角度
* 270是结束角度


ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "rotation", 20, 270);
* 属性指定为rotationX是竖直翻转
* 属性指定为rotationY是水平翻转


ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "rotationY", 20, 180);


###可变参数
* 第三个参数可变参数可以传入多个参数,可以实现往回位移(旋转、缩放、透明)


ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "translationX", 0, 70, 30, 100) ;


###所有动画一起飞


//创建动画师集合
AnimatorSet set = new AnimatorSet();
//设置要播放动画的组件
set.setTarget(bt);
//所有动画有先后顺序的播放
//set.playSequentially(oa, oa2, oa3, oa4);
//所有动画一起播放
set.playTogether(oa, oa2, oa3, oa4);
set.start();

五: fragment、popupWindow、dialog、fragmentDialog

1 fragment

  1.         FragmentManager fm = getFragmentManager();  
  2.         FragmentTransaction transaction = fm.beginTransaction();  
  3.         mWeixin = new ContentFragment();  
  4.         transaction.replace(R.id.id_content, mWeixin);  
  5.         transaction.commit();

 2 dialog

六:apk升级代码逻辑

json{"versionName":"2.1.2","description":"这是新版本","下载地址":"这是下载地址"}

1 连网解析json,判断服务器的versionName和本地的versionName是否equal

2 下载apk,存到一个路径下。

3 安装apk

String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDirectory() + str; Intent intent = new Intent(Intent.ACTION_VIEW); i ntent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive"); startActivity(intent);



更多相关文章

  1. 浅析Android中ndk-build支持的参数
  2. activity详细XML属性及值【大全、来自google】
  3. Android有趣的爆炸散落动画view:开源ExplosionField
  4. Android EditText TextWatcher 回调方法参数说明
  5. Android学习笔记―第十章 动画
  6. Android开机动画理解
  7. 关于android中线性布局的layout_gravity属性
  8. Android 自定义标签属性设置及使用
  9. android:exported 属性分析

随机推荐

  1. Android——自定义View类(一 )
  2. Android(安卓)-- 内存泄漏
  3. 用Dbus与android的bluz通信
  4. 关于Android的问号?和@符号的用法
  5. Android之进度条控件和常用资源分类总结
  6. android 玩转ContentProvider之二--实现多
  7. android core dump测试
  8. android UI进阶之弹窗的使用
  9. Android系统的Binder机制分析
  10. android TextView设置字过多长长度后面显