Android 两Activity之间动画效果(3)---------缩放,仿QQ头像点击放大

这篇文章要实现的效果是,点击头像之后,图片要放大占满全屏,又不失真

因为有了前面两篇文章的基础,所以不再详细解释,只写关键部分两xml 如下

img_scale_in:

<?xml version="1.0" encoding="utf-8"?>
<!-- android:fromXScale="0.001" -->
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromXScale="0.001"
    android:fromYScale="0.001"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="1.0"
    android:toYScale="1.0" />

Img_scale_out:

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="0.001"
    android:toYScale="0.001" />

其中 fromXScale 范围0到无限大     1.0代表图像本身多大就多大,不会放大和缩小,比1小是缩小,比1大是放大最后在AndroidManifest属性里面配置下activity Theme

        <activity
            android:name=".ShowImagePage"
            android:label="@string/title_activity_main"
            android:theme="@style/ImageScale" >
        </activity>

再有一个小知识,因为要在两个Activity之间要传递bitmap,所以顺带把关键代码贴出来:

传递:

  Intent intent = new   Intent(this, ShowImagePage.class);
  // intent传递bitmap
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
  byte[] bitmapByte = baos.toByteArray();
  intent.putExtra("bitmap", bitmapByte);
  this.startActivity(intent);

接收

  Intent intent = getIntent();
  if (intent != null)
  {
   byte[] bis = intent.getByteArrayExtra("bitmap");
   bitmap = BitmapFactory.decodeByteArray(bis, 0, bis.length);
  }  

 源码下载

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值