2012-09-03 44 views
0

我目前有一个填充缩略图的GridView。现在通常我会通过onClickListener在“详细”活动中加载这些缩略图的全尺寸版本。使用Gridviews进行Android动画:从缩略图缩放到全尺寸图像

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

注意:如果任何人有HTC One X,我追逐的效果与该手机上的图库应用完全相同。当您点击图像时,由Jellybean驱动的Nexus 7也具有相同的效果。

我最近的尝试是(射击的onClick):

<?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" /> 

更新:试图寻找在源谷歌的Gallery3D应用(http://grepcode.com/file/repository.grepcode。 com/java/ext/com.google.android/android-apps/4.1.1_r1/com/android/gallery3d/app),这是Nexus使用的,但它非常复杂。

+0

比例的视图是相当容易的,我想你已经知道如何去做。还有一件事是计算开始/结束比例的位置,你可能需要'View.LayoutParams'。 – neevek

+0

我不知道如何做到这一点。目前我可以获得需要缩放的图像,但不能如何从所选图像的尺寸缩放以适应屏幕尺寸。 –

+0

我实际上已经解决了这个问题。我会尽我所能写出我的答案。 –

回答

1

Here是DevBytes中类似效果的一个很好的例子。它在ActivityOptions使用新的API,它可以从豆形软糖直接或可以通过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);