0

我目前有一个GridView充满缩略图的图像。现在通常我会通过onClickListener.

但是,我正在尝试复制效果,如果单击缩略图,它应该放大以显示全尺寸图像,并且当您点击全尺寸图像时,它应该缩小到缩略图。我尝试了一个简单的缩放动画,但似乎无法将图像从(和返回到)它的初始位置动画化。

注意:如果有人有 HTC One X,我追求的效果和那部手机上的 Gallery 应用完全一样。当您单击图像时,由 Jellybean 驱动的 Nexus 7 也具有相同的效果。

我最近的尝试是(在点击时触发):

<?xml version="1.0" encoding="utf-8"?>
<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:fromXScale="1.0"
    android:toXScale="1.0"
    android:fromYScale="0.0"
    android:toYScale="1.0"
    android:pivotY="50%"
    android:fillAfter="true"
    android:fillEnabled="true"
    android:startOffset="200"
    android:duration="200" />

更新:尝试查看 Google 的 Gallery3D 应用程序的源代码(http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/4.1.1_r1/com/android/ gallery3d/app),这是 Nexus 使用的,但它非常复杂。

4

1 回答 1

2

是 DevBytes 中类似效果的一个很好的例子。它在ActivityOptions中使用新的 API ,可以直接从 JellyBean 获得,也可以通过support-v4库访问

从该示例中截取的代码如下:

Intent i = new Intent(HomeActivity.this, DetailActivity.class);
i.putExtra(DetailActivity.EXTRA_COLOUR, colour);
Bundle b = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
    bitmap.eraseColor(colour);
    b = ActivityOptions.makeThumbnailScaleUpAnimation(view, bitmap, 0, 0).toBundle();
}
startActivity(i, b);
于 2014-07-18T02:31:54.137 回答