當前位置:首頁 » 安卓系統 » android收縮動畫

android收縮動畫

發布時間: 2022-05-11 08:08:36

『壹』 android 4.x 系統里的幾個動畫縮放時長有什麼不同的影響

關閉自然是對系統資源佔用最低的,這些動畫主要指的是程序打開、關閉、縮小或頁面轉跳時的動畫。你關掉動畫的話,操作就會顯得生硬。正常的話是一倍速,OK的了。

『貳』 如何實現Android收縮動畫間斷實現

參考下面代碼:
<alpha
repeatMode=reverse?
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:ration="500"
android:repeatCount="infinite"
android:startOffset="500"
/>

『叄』 Android 中的動畫有哪幾類,它們的特點和區別是什麼

Android包含三種動畫:

ViewAnimation、 Drawable Animation、Property Animation。

ViewAnimation(Tween Animation補間動畫):


動畫的對象除了傳統的View對象,還可以是Object對象,動畫之後,Object對象的屬性值被實實在在的改變了。Property animation能夠通過改變View對象的實際屬性來實現View動畫。任何時候View屬性的改變,View能自動調用invalidate()來刷新。

『肆』 android里如何實現點擊一個按鈕然後對控制項進行展開和收縮

加監聽 西安市alertdialog或popupwindow可加動畫效果

『伍』 安卓手機設置里有動畫縮放選項,默認是x1,覺得不流暢,改成x0.5感覺快多了。要是把動畫關了會怎樣

前三個動畫是調節每個應用和桌面滑動的過渡動畫如果改成0 你會發現反應速度快了 但沒動畫了 強制gpu 是運行2d的東西時 不用cpu而是用gpu

『陸』 android 不用XML,怎樣在代碼里用animation同時實現圖片的縮放和移動。

1.在Java Code定義動畫

AlphaAnimation

漸變透明度動畫效果

ScaleAnimation

漸變尺寸伸縮動畫效果

TranslateAnimation

畫面轉換位置移動動畫效果

RotateAnimation

畫面轉移旋轉動畫效果

//定義變數

private Animation myAnimation_Alpha;

private Animation myAnimation_Scale;

private Animation myAnimation_Translate;

private Animation myAnimation_Rotate;

myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);

//第一個參數fromAlpha為 動畫開始時候透明度

//第二個參數toAlpha為 動畫結束時候透明度

myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

//第一個參數fromX為動畫起始時 X坐標上的伸縮尺寸

//第二個參數toX為動畫結束時 X坐標上的伸縮尺寸

//第三個參數fromY為動畫起始時Y坐標上的伸縮尺寸

//第四個參數toY為動畫結束時Y坐標上的伸縮尺寸

//第五個參數pivotXType為動畫在X軸相對於物件位置類型

//第六個參數pivotXValue為動畫相對於物件的X坐標的開始位置

//第七個參數pivotXType為動畫在Y軸相對於物件位置類型

//第八個參數pivotYValue為動畫相對於物件的Y坐標的開始位置

myAnimation_Translate=new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);

//第一個參數fromXDelta為動畫起始時 X坐標上的移動位置

//第二個參數toXDelta為動畫結束時 X坐標上的移動位置

//第三個參數fromYDelta為動畫起始時Y坐標上的移動位置

//第四個參數toYDelta為動畫結束時Y坐標上的移動位置

myAnimation_Rotate=new RotateAnimation(0.0f,350.0f,Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIV E_TO_SELF, 0.5f);

//第一個參數fromDegrees為動畫起始時的旋轉角度

//第二個參數toDegrees為動畫旋轉到的角度

//第三個參數pivotXType為動畫在X軸相對於物件位置類型

//第四個參數pivotXValue為動畫相對於物件的X坐標的開始位

//第五個參數pivotXType為動畫在Y軸相對於物件位置類型

//第六個參數pivotYValue為動畫相對於物件的Y坐標的開始位置

2.3自定義動畫

除了以上4類動畫外,在代碼中繼承android.view.animation.Animation類來實現自定義效果。通過重寫Animation的applyTransformation(float interpolatedTime, Transformation t)函數來實現自定義動畫效果。

在繪制動畫的過程中會反復的調用applyTransformation函數,每次調用參數interpolatedTime值都會變化,該參數從0漸 變為1,當該參數為1時表明動畫結束。通過參數Transformation 來獲取變換的矩陣(matrix),通過改變矩陣就可以實現各種復雜的效果。

自定義圖片旋轉效果動畫代碼。

class ViewAnimation extends Animation

{

int mCenterX;

int mCenterY;

Camera camera = new Camera();

public ViewAnimation()

{

}

@Override

public void initialize(int width, int height, int parentWidth,

int parentHeight)

{

super.initialize(width, height, parentWidth, parentHeight);

mCenterX = width/2;

mCenterY = height/2;

setDuration(2500);

setFillAfter(true);

// setRepeatCount(100);

setInterpolator(new LinearInterpolator());

}

@Override

protected void applyTransformation(float interpolatedTime,

Transformation t)

{

final Matrix matrix = t.getMatrix();

camera.save();

camera.translate(0.0f, 0.0f, (1300 - 1300.0f * interpolatedTime));

camera.rotateY(360 * interpolatedTime);

camera.getMatrix(matrix);

matrix.preTranslate(-mCenterX, -mCenterY);

matrix.postTranslate(mCenterX, mCenterY);

camera.restore();

}

}

camera.translate(0.0f, 0.0f, (1300 - 1300.0f * interpolatedTime))在第一次調用的時候interpolatedTime值為0,相當於把ImageView在Z軸後移1300像素, 然後逐步的往前移動到0,同時camera.rotateY(360 * interpolatedTime)函數又把ImageView沿Y軸翻轉360度

2.4動畫實現

在代碼的一個activity中,將需要動畫的控制項與已定義的動畫關聯,開啟動畫

private Animation mAnimationXXX = null;//生明動畫

ImageView mAnimImageX = null;//生明 ImageView控制項(或者其它需要有動畫的控制項)

mAnimImageX = (ImageView) this.findViewById(R.id.anim_imageX);//取得圖片資源

mAnimImageX.startAnimation(mAnimationXXX);//基於xml文件,開啟動畫

mAnimImageX.startAnimation(new ViewAnimation());//基於自定義控制項,開啟動畫。

2.5圖片旋轉Demo

public class AnimationDemo extends Activity {

/** Called when the activity is first created. */

ImageView mAnimImage;

private Animation mAnimationAlpha = null;

private Animation mAnimationScale = null;

private Animation mAnimationTranslate = null;

private Animation mAnimationRotate = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mAnimImage = (ImageView) this.findViewById(R.id.anim_image1);

mAnimationAlpha = AnimationUtils.loadAnimation(this,R.anim.alpha_animation);

mAnimationScale = AnimationUtils.loadAnimation(this,R.anim.scale_animation);

mAnimationTranslate = AnimationUtils.loadAnimation(this,R.anim.translate_animation);

mAnimationRotate = AnimationUtils.loadAnimation(this,R.anim.rotate_animation);

}

public boolean onKeyUp(int keyCode, KeyEvent event)

{

switch ( keyCode )

{

case KeyEvent.KEYCODE_1:

mAnimImage.startAnimation(mAnimationAlpha);

break;

case KeyEvent.KEYCODE_2:

mAnimImage.startAnimation(mAnimationScale);

break;

case KeyEvent.KEYCODE_3:

mAnimImage.startAnimation(mAnimationTranslate);

break;

case KeyEvent.KEYCODE_4:

mAnimImage.startAnimation( mAnimationRotate);

break;

case KeyEvent.KEYCODE_5:

mAnimImage.startAnimation(new ViewAnimation());

break;

}

return true;

}

public boolean onKeyDown(int keyCode, KeyEvent event)

{

if ( keyCode == KeyEvent.KEYCODE_BACK)

{

this.finish();

return true;

}

return super.onKeyDown(keyCode, event);

}

}

3 Frame動畫

Frame 動畫是順序播放事先做好的圖片。可以在XML Resource定義,也可以使AnimationDrawable中的API定義。

3.1Frame動畫實現

定義XML文件

<?xml version="1.0" encoding="utf-8"?>

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"

android:oneshot="false">

<item android:drawable="@drawable/a1" android:ration="500" />

<item android:drawable="@drawable/a2" android:ration="500" />

<item android:drawable="@drawable/a3" android:ration="500" />

<item android:drawable="@drawable/a4" android:ration="500" />

<item android:drawable="@drawable/a5" android:ration="500" />

<item android:drawable="@drawable/a6" android:ration="500" />

<item android:drawable="@drawable/a7" android:ration="500" />

<item android:drawable="@drawable/a8" android:ration="500" />

<item android:drawable="@drawable/a9" android:ration="500" />

<item android:drawable="@drawable/a10" android:ration="500" />

<item android:drawable="@drawable/a11" android:ration="500" />

<item android:drawable="@drawable/a12" android:ration="500" />

<item android:drawable="@drawable/a13" android:ration="500" />

<item android:drawable="@drawable/a14" android:ration="500" />

<item android:drawable="@drawable/a15" android:ration="500" />

</animation-list>

定義動畫類

public class GameView extends View

{

private AnimationDrawable frameAnimation = null;

Context mContext = null;

public GameView(Context context)

{

super(context);

mContext = context;

ImageView img = new ImageView(mContext);

img.setBackgroundResource(R.anim.frameanimation);

frameAnimation = (AnimationDrawable) img.getBackground();

frameAnimation.setOneShot( false );

this.setBackgroundDrawable(frameAnimation);

}

public void onDraw(Canvas canvas)

{

super.onDraw(canvas);

}

public boolean onKeyUp(int keyCode, KeyEvent event)

{

switch ( keyCode )

{

case KeyEvent.KEYCODE_DPAD_UP:

frameAnimation.start();

break;

}

return true;

}

}

開啟動畫

public class Activity01 extends Activity

{

private GameView mGameView;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

mGameView = new GameView(this);

setContentView(mGameView);

}

public boolean onKeyUp(int keyCode, KeyEvent event)

{

if ( mGameView == null )

{

return false;

}

mGameView.onKeyUp(keyCode,event);

return true;

}

public boolean onKeyDown(int keyCode, KeyEvent event)

{

if ( mGameView == null )

{

return false;

}

if ( keyCode == KeyEvent.KEYCODE_BACK)

{

this.finish();

return true;

}

return super.onKeyDown(keyCode, event);

}

}

『柒』 Android 按鈕按下後出現一個動畫效果,從右向左拉伸,按鈕背景和形狀變化

用button的大小用lp.width=width;lp.height=height;btn1.setLayoutParams(lp);背景圖片就用setbackgroud(),照你的問題描述,只要設置button的width,背景圖用9-patch就行了

『捌』 android 的動畫效果怎麼做

1. Tween Animation:通過對場景里的對象不斷做圖像變換(平移、縮放、旋轉)產生動畫效果,即是一種漸變動畫;
2. Frame Animation:順序播放事先做好的圖像,是一種畫面轉換動畫。
動畫類型
下面先來看看Android提供的動畫類型。Android的animation由四種類型組成
在XML文件中:
alpha 漸變透明度動畫效果
scale 漸變尺寸伸縮動畫效果
translate 畫面轉換位置移動動畫效果
rotate 畫面轉移旋轉動畫效果
在Java 源碼中定義了相應的類,可以使用這些類的方法來獲取和操作相應的屬性:
AlphaAnimation漸變透明度動畫效果
ScaleAnimation漸變尺寸伸縮動畫效果
TranslateAnimation畫面轉換位置移動動畫效果
RotateAnimation畫面轉移旋轉動畫效果

『玖』 安卓手機關於窗口動畫縮放,過渡動畫縮放,動畫程序時長對應的源文件和代碼是什麼啊

Android Activity(窗口)調用 overridePendingTransition(R.anim.left_out, R.anim.left_in);可以實現過渡動畫,其中R.anim.left_out是當前 Activity 退出的動畫,R.anim.left_in是新打開 Activity進入的動畫,至於實現縮放,只需要修改R.anim.left_out, R.anim.left_in對應的動畫實現方式,IDE 中點擊方法可以進入到源碼中。

『拾』 android中的動畫有哪幾類,它們的特點和區別是什麼

兩種,一種是Tween動畫、還有一種是Frame動畫。Tween動畫,這種實現方式可以使視圖組件移動、放大、縮小以及產生透明度的變化;另一種Frame動畫,傳統的動畫方法,通過順序的播放排列好的圖片來實現,類似電影。

熱點內容
編程找點 發布:2025-05-15 20:43:10 瀏覽:587
php上傳臨時文件夾 發布:2025-05-15 20:43:00 瀏覽:657
impala資料庫 發布:2025-05-15 20:42:12 瀏覽:649
android安裝插件 發布:2025-05-15 20:41:31 瀏覽:241
神秘顧客訪問 發布:2025-05-15 20:33:39 瀏覽:298
安卓市場手機版從哪裡下載 發布:2025-05-15 20:17:28 瀏覽:815
幼兒速演算法 發布:2025-05-15 20:15:08 瀏覽:87
best把槍密碼多少 發布:2025-05-15 20:13:42 瀏覽:549
android安裝程序 發布:2025-05-15 20:13:20 瀏覽:560
c語言跳出死循環 發布:2025-05-15 20:06:04 瀏覽:825