安卓如何實現輪播圖流程
Ⅰ 安卓輪播圖怎麼讓到最後一張的時候來
利用Android的ViewFlipper和AnimationUtils實現圖片帶有動畫的輪播切換,其中當點擊「上一張」圖片時,切換到上一張圖片;當點擊「下一張」圖片時,切換到下一張圖片。其效果圖如下:
ViewFlipper類和WindowManager類
animation動畫效果translate和alpha
方法/步驟
1
設置布局文件,其內容如下:
activity_image_flipper_shade.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android=""
xmlns:tools=""
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:paddingBottom="@dimen/activity_optopns_vertical_margin"
android:paddingLeft="@dimen/activity_options_horizontal_margin"
android:paddingRight="@dimen/activity_options_horizontal_margin"
android:paddingTop="@dimen/activity_optopns_vertical_margin"
tools:context=".ImageFlipperActivity" >
<RelativeLayout
android:id="@id/rl_image_flipper_shade_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_image_flipper_shade_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginBottom="10dp"
android:background="@drawable/custom_button"
android:text="@string/back"
android:textColor="@color/textColor"
android:textSize="16sp"
android:visibility="visible" />
<TextView
android:id="@id/tv_image_flipper_shade_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/image_flipper_shade"
android:textColor="@color/textColor"
android:textSize="30sp"
android:textStyle="bold" />
</RelativeLayout>
<LinearLayout
android:id="@id/ll_image_flipper_shade_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/rl_image_flipper_shade_title"
android:layout_marginBottom="20dp"
android:layout_marginTop="20dp"
android:gravity="center"
android:orientation="vertical" >
<ViewFlipper
android:id="@id/vf_image_flipper_shade"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</RelativeLayout>
2
動畫效果配置文件,其內容如下:
A.push_left_in.xml(從左邊進入屏幕)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="" >
<!-- translate:畫面轉換位置移動動畫效果 -->
<translate
android:ration="500"
android:fromXDelta="100%p"
android:toXDelta="0" />
<!-- alpha:漸變透明度動畫效果 -->
<alpha
android:ration="500"
android:fromAlpha="0.1"
android:toAlpha="1.0" />
<!-- scale:漸變尺寸伸縮動畫效果 -->
<!-- rotate:畫面轉換位置移動動畫效果 -->
</set>
B.push_left_out.xml(從左邊退出屏幕)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:ration="500"
android:fromXDelta="0"
android:toXDelta="-100%p" />
<alpha
android:ration="500"
android:fromAlpha="1.0"
android:toAlpha="0.1" />
</set>
C.push_right_in.xml(從右邊進入屏幕)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:ration="500"
android:fromXDelta="-100%p"
android:toXDelta="0" />
<alpha
android:ration="500"
android:fromAlpha="0.1"
android:toAlpha="1.0" />
</set>
D.push_right_out.xml(從右邊退出屏幕)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:ration="500"
android:fromXDelta="0"
android:toXDelta="100%p" />
<alpha
android:ration="500"
android:fromAlpha="1.0"
android:toAlpha="0.1" />
</set>
Android實現圖片輪播切換
3
實現圖片輪播切換的類為ImageFlipperShadeActivity.java,其內容為:
/**
*
*/
package com.i114gbox.aglieguy;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.os.Handler;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ViewFlipper;
import com.i114gbox.sdk.activity.I114gBoxActivity;
import com.i114gbox.sdk.utils.I114gBoxCollectActivityUtils;
import com.i114gbox.sdk.utils.I114gBoxLogUtils;
import com.i114gbox.sdk.utils.I114gBoxResourceUtils;
/**
* 圖片滑動漸變Activity
*
* @author SJC
*
*/
public class ImageFlipperShadeActivity extends I114gBoxActivity {
private static String TAG = "ImageFlipperShadeActivity";
private Context ctx = null;
private ViewFlipper viewFlipper;// 視圖輪播
private WindowManager windowManager;// 窗口管理器
private WindowManager.LayoutParams layoutParams;// 布局參數
private boolean isHide;
private int mAlpha = 0;
// 左邊圖片視圖
private ImageView leftImageView;
// 右邊圖片視圖
private ImageView rightImageView;
private int WHAT_HIDE = 0;
private int WHAT_SHOW = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
I114gBoxLogUtils.d(TAG, "The onCreate method execute.");
super.onCreate(savedInstanceState);
I114gBoxCollectActivityUtils.getInstance().addActivity(this);// 收集Activity
ctx = this;
setContentView(I114gBoxResourceUtils.getLayoutId(ctx,
"activity_image_flipper_shade"));
viewFlipper = (ViewFlipper) findViewById(I114gBoxResourceUtils.getId(
ctx, "vf_image_flipper_shade"));
viewFlipper.addView(addImageView(I114gBoxResourceUtils.getDrawableId(
ctx, "flipper_01")));
viewFlipper.addView(addImageView(I114gBoxResourceUtils.getDrawableId(
ctx, "flipper_02")));
viewFlipper.addView(addImageView(I114gBoxResourceUtils.getDrawableId(
ctx, "flipper_03")));
viewFlipper.addView(addImageView(I114gBoxResourceUtils.getDrawableId(
ctx, "flipper_04")));
viewFlipper.addView(addImageView(I114gBoxResourceUtils.getDrawableId(
ctx, "flipper_05")));
viewFlipper.addView(addImageView(I114gBoxResourceUtils.getDrawableId(
ctx, "flipper_06")));
Button backButton = (Button) findViewById(I114gBoxResourceUtils.getId(
ctx, "btn_image_flipper_shade_back"));
backButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
Ⅱ android 中怎麼實現多圖自動輪播中間放大的效果
1,頂部輪播圖,自動輪播效果。
2,頂部的viewpager 可隨著下拉圖片有漸變大的效果。
使用方法:
1,帶輪播圖的自定義ScrollView ,在項目中的名字叫ViewPagerImageScrollView,主要是通過圖片的matrix.postScale(scale, scale, imgHeight/2, 0); 這個來進行當大圖片。
Ⅲ android 怎麼在輪播時實現多種動畫效果,如第一張到第二張漸變,第二張到第三張旋轉
Android系統自帶的一個多頁面管理控制項,它可以實現子界面的自動切換:
首先 需要為ViewFlipper加入View
(1) 靜態導入:在layout布局文件中直接導入
(2) 動態導入:addView()方法
ViewPlipper常用方法:
setInAnimation:設置View進入屏幕時候使用的動畫
setOutAnimation:設置View退出屏幕時候使用的動畫
showNext:調用該函數來顯示ViewFlipper裡面的下一個View
showPrevious:調用該函數來顯示ViewFlipper裡面的上一個View
setFlipInterval:設置View之間切換的時間間隔
startFlipping使用上面設置的時間間隔來開始切換所有的View,切換會循環進行
stopFlipping:停止View切換
講了這么多,那麼我們今天要實現的是什麼呢?
(1) 利用ViewFlipper實現圖片的輪播
(2) 支持手勢滑動的ViewFlipper
我們需要先准備幾張圖片:把圖片放進drawable中
創建兩個動畫:在res下面新建一個folder裡面新建兩個xml: