0

現在GridView、サムネイル画像でいっぱいです。通常、これらのサムネイルのフルサイズ バージョンは、onClickListener.

ただし、サムネイルをクリックすると拡大してフルサイズの画像が表示され、フルサイズの画像をタップするとサムネイルに縮小されるという効果を再現しようとしています。単純なスケール アニメーションを試してみましたが、画像を最初の位置から (そして元の位置に戻す) アニメーション化することに頭を悩ませているようです。

注: 誰かが 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" />

更新: 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 に答える