最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android圖片翻轉(zhuǎn)動畫簡易實現(xiàn)代碼

 更新時間:2012年11月28日 11:25:06   作者:  
Android圖片翻轉(zhuǎn)動畫效果如何實現(xiàn),本文將給你一個驚喜,實現(xiàn)代碼已經(jīng)列出,需要的朋友可以參考下

下面給大家分享一個有趣的動畫:這里比較適合一張圖片的翻轉(zhuǎn),如果是多張圖片,可以參考APIDemo里的例子,就是加個ArrayAdapter,還是簡單的,也可以自己發(fā)揮修改,實現(xiàn)自己想要的。這里的代碼基本上可以直接運行項目了。
在main.xml里加個ImageView,如

復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rotate"
android:textSize="50px"
android:layout_x="150px"
android:layout_y="30px"
android:src="@drawable/ro">
></ImageView>
</FrameLayout>

這個不需要解釋吧,都可以看懂的
最后,還需要一個activity類
如:
復(fù)制代碼 代碼如下:

public class TestRotate extends Activity implements OnClickListener{
private mageView imageview;
private ViewGroup mContainer;
/**
*這個變量設(shè)置的是圖片,如果是多張圖片,那么可以用數(shù)組,如
*private static final int IMAGE = new int[]{
* R.drawable.ro,
* R.drawable.icon
*};
*有多少圖片就放多少,我這里做的只是一張圖片的翻轉(zhuǎn)
*
*/
private static final int IMAGE = R.drawable.ro;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageview = (ImageView) findViewById(R.id.image);
mContainer = (ViewGroup) findViewById(R.id.container);
/**
* 設(shè)置最新顯示的圖片
* 如果是數(shù)組,那么可以寫成IMAGE[int]
*
*/
imageview.setImageResource(IMAGE);
/**
*
* 設(shè)置ImageView的OnClickListener
*
*/
imageview.setClickable(true);
imageview.setFocusable(true);
imageview.setOnClickListener(this);
}
private void applyRotation(int position, float start, float end) {
// Find the center of the container
final float centerX = mContainer.getWidth() / 2.0f;
final float centerY = mContainer.getHeight() / 2.0f;
final Rotate3d rotation =
new Rotate3d(start, end, centerX, centerY, 310.0f, true);
rotation.setDuration(500);
rotation.setFillAfter(true);
rotation.setInterpolator(new AccelerateInterpolator());
rotation.setAnimationListener(new DisplayNextView(position));
mContainer.startAnimation(rotation);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
/**
*
* 調(diào)用這個方法,就是翻轉(zhuǎn)圖片
* 參數(shù)很簡單,大家都應(yīng)該看得懂
* 簡單說下,第一個是位置,第二是開始的角度,第三個是結(jié)束的角度
* 這里需要說明的是,如果是要回到上一張
* 把第一個參數(shù)設(shè)置成-1就行了
*
*/
applyRotation(0,0,90);
}
private final class DisplayNextView implements Animation.AnimationListener {
private final int mPosition;
private DisplayNextView(int position) {
mPosition = position;
}
public void onAnimationStart(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
mContainer.post(new SwapViews(mPosition));
}
public void onAnimationRepeat(Animation animation) {
}
}
/**
* This class is responsible for swapping the views and start the second
* half of the animation.
*/
private final class SwapViews implements Runnable {
private final int mPosition;
public SwapViews(int position) {
mPosition = position;
}
public void run() {
final float centerX = mContainer.getWidth() / 2.0f;
final float centerY = mContainer.getHeight() / 2.0f;
Rotate3d rotation;
if (mPosition > -1) {
imageview.setVisibility(View.VISIBLE);
imageview.requestFocus();
rotation = new Rotate3d(90, 180, centerX, centerY, 310.0f, false);
} else {
imageview.setVisibility(View.GONE);
rotation = new Rotate3d(90, 0, centerX, centerY, 310.0f, false);
}
rotation.setDuration(500);
rotation.setFillAfter(true);
rotation.setInterpolator(new DecelerateInterpolator());
mContainer.startAnimation(rotation);
}
}
}

相關(guān)文章

  • Android?app啟動節(jié)點與上報啟動實例詳解

    Android?app啟動節(jié)點與上報啟動實例詳解

    系統(tǒng)的啟動過程非常復(fù)雜,下面這篇文章主要給大家介紹了關(guān)于Android?app啟動節(jié)點與上報啟動的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 詳解flutter如何實現(xiàn)局部導(dǎo)航管理

    詳解flutter如何實現(xiàn)局部導(dǎo)航管理

    這篇文章主要為大家介紹了詳解flutter如何實現(xiàn)局部導(dǎo)航管理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Android繪制旋轉(zhuǎn)動畫方法詳解

    Android繪制旋轉(zhuǎn)動畫方法詳解

    這篇文章主要介紹了Android如何采用RotateAnimation繪制一個旋轉(zhuǎn)動畫,文中的實現(xiàn)方法講解詳細(xì),感興趣的小伙伴可以跟隨小編一起試一試
    2022-01-01
  • Android Studio 修改類的默認(rèn)注釋圖文教程

    Android Studio 修改類的默認(rèn)注釋圖文教程

    這篇文章主要介紹了Android Studio 修改類的默認(rèn)注釋圖文教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android仿微信朋友圈圖片選擇器

    Android仿微信朋友圈圖片選擇器

    這篇文章主要為大家詳細(xì)介紹了Android仿微信朋友圈附加圖片功能,朋友圈圖片選擇器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android制作簡單垂直上拉下滑View效果

    Android制作簡單垂直上拉下滑View效果

    這篇文章主要介紹了Android制作簡單垂直上拉下滑View效果的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android動態(tài)添加設(shè)置布局與控件的方法

    Android動態(tài)添加設(shè)置布局與控件的方法

    這篇文章主要介紹了Android動態(tài)添加設(shè)置布局與控件的方法,涉及Android中布局與控件的相關(guān)操作技巧,需要的朋友可以參考下
    2016-01-01
  • Android中實現(xiàn)圓角圖片的幾種方法

    Android中實現(xiàn)圓角圖片的幾種方法

    本篇文章主要介紹了Android中實現(xiàn)圓角圖片的幾種方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Android植物大戰(zhàn)僵尸小游戲

    Android植物大戰(zhàn)僵尸小游戲

    植物大戰(zhàn)僵尸小游戲,無論老少皆愛,非常有意思,具有挑戰(zhàn)性,那么基于代碼是怎么實現(xiàn)的呢?下面通過本文給大家介紹Android植物大戰(zhàn)僵尸小游戲,感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • Android 測試入門篇

    Android 測試入門篇

    Android本身是一套軟件堆疊(Software Stack),或者成為軟件疊層架構(gòu),疊層主要分成三層:操作系統(tǒng)、中間件和應(yīng)用程序
    2014-03-03

最新評論

岱山县| 呼和浩特市| 沧源| 台北县| 印江| 雷州市| 平和县| 泸水县| 库车县| 盐城市| 萨嘎县| 汉沽区| 汉寿县| 韶关市| 阿坝| 海安县| 成都市| 麦盖提县| 敦化市| 景谷| 博白县| 万全县| 东至县| 安阳市| 衡东县| 襄樊市| 光山县| 赣州市| 富阳市| 武川县| 涞源县| 静海县| 崇州市| 海安县| 赫章县| 宜都市| 原平市| 洛浦县| 枣阳市| 东乡族自治县| 兰溪市|