當前位置:首頁 » 安卓系統 » android圖片循環

android圖片循環

發布時間: 2023-03-17 19:36:23

1. android怎麼viewpager實現循環切換圖片

Android中的ViewPager則實現了左右滑動的效果,ViewPager類提供了多界面切換的新效果。利用ViewPager實現圖片循環滾動代碼如下:

1、首先是布局文件,使用了一個ViewPager控制項:

java"><spanstyle="padding:0px;margin:0px;font-size:14px;"><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/viewpager"
android:background="#33000000"
android:orientation="vertical"
android:padding="5dip">
<TextView
android:id="@+id/tv_image_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="第一個引導頁面"
android:textColor="@android:color/white"
android:textSize="14sp"/>
<LinearLayout
android:id="@+id/ll_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
</LinearLayout>
</LinearLayout>
</RelativeLayout></span>

2、接下來實現一個繼承PagerAdapter的MyAdapter類,實現一個PagerAdapter,代碼如下:

<spanstyle="padding:0px;margin:0px;font-size:14px;">packagecom.example.viewpagertest;
importjava.util.List;
importandroid.support.v4.view.PagerAdapter;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.ImageView;
{
privateList<ImageView>mImageViewList;
publicViewPagerAdapter(List<ImageView>imageViewList){
super();
this.mImageViewList=imageViewList;
}
/**
*該方法將返回所包含的Item總個數。為了實現一種循環滾動的效果,返回了基本整型的最大值,這樣就會創建很多的Item,
*其實這並非是真正的無限循環。
*/
@Override
publicintgetCount(){
returnInteger.MAX_VALUE;
}
/**
*判斷出去的view是否等於進來的view如果為true直接復用
*/
@Override
publicbooleanisViewFromObject(Viewarg0,Objectarg1){
returnarg0==arg1;
}
/**
*銷毀預載入以外的view對象,會把需要銷毀的對象的索引位置傳進來,就是position,
*因為mImageViewList只有五條數據,而position將會取到很大的值,
*所以使用取余數的方法來獲取每一條數據項。
*/
@Override
publicvoiddestroyItem(ViewGroupcontainer,intposition,Objectobject){
container.removeView(mImageViewList.get(position%mImageViewList.size()));
}
/**
*創建一個view,
*/
@Override
publicObjectinstantiateItem(ViewGroupcontainer,intposition){
container.addView(mImageViewList.get(position%mImageViewList.size()));
returnmImageViewList.get(position%mImageViewList.size());
}
}
</span>

3、最後是主界面部分的代碼:

<spanstyle="padding:0px;margin:0px;font-size:14px;">packagecom.example.viewpagertest;
importjava.util.ArrayList;
importjava.util.List;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.os.SystemClock;
importandroid.support.v4.view.ViewPager;
importandroid.support.v4.view.ViewPager.OnPageChangeListener;
importandroid.view.View;
importandroid.widget.ImageView;
importandroid.widget.LinearLayout;
importandroid.widget.LinearLayout.LayoutParams;
importandroid.widget.TextView;

{

privateList<ImageView>imageViewList;
privateTextViewtvDescription;
privateLinearLayoutllPoints;
privateString[]imageDescriptions;
=0;
privateViewPagermViewPager;
privatebooleanisLoop=true;
privateHandlerhandler=newHandler(){

@Override
publicvoidhandleMessage(Messagemsg){
super.handleMessage(msg);

mViewPager.setCurrentItem(mViewPager.getCurrentItem()+1);
}
};

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setView();
initView();
}

publicvoidsetView(){
setContentView(R.layout.activity_splash_viewpager);

//自動切換頁面功能
newThread(newRunnable(){

@Override
publicvoidrun(){
while(isLoop){
SystemClock.sleep(2000);
handler.sendEmptyMessage(0);
}
}
}).start();
}

publicvoidinitView(){
mViewPager=(ViewPager)findViewById(R.id.viewpager);
tvDescription=(TextView)findViewById(R.id.tv_image_description);
llPoints=(LinearLayout)findViewById(R.id.ll_points);

prepareData();

ViewPagerAdapteradapter=newViewPagerAdapter(imageViewList);
mViewPager.setAdapter(adapter);
mViewPager.setOnPageChangeListener(this);

tvDescription.setText(imageDescriptions[previousSelectPosition]);
llPoints.getChildAt(previousSelectPosition).setEnabled(true);

/**
*2147483647/2=1073741820-1
*設置ViewPager的當前項為一個比較大的數,以便一開始就可以左右循環滑動
*/
intn=Integer.MAX_VALUE/2%imageViewList.size();
intitemPosition=Integer.MAX_VALUE/2-n;

mViewPager.setCurrentItem(itemPosition);
}

privatevoidprepareData(){
imageViewList=newArrayList<ImageView>();
int[]imageResIDs=getImageResIDs();
imageDescriptions=getImageDescription();

ImageViewiv;
Viewview;
for(inti=0;i<imageResIDs.length;i++){
iv=newImageView(this);
iv.setBackgroundResource(imageResIDs[i]);
imageViewList.add(iv);

//添加點view對象
view=newView(this);
view.setBackgroundDrawable(getResources().getDrawable(R.drawable.point_background));
LayoutParamslp=newLayoutParams(5,5);
lp.leftMargin=10;
view.setLayoutParams(lp);
view.setEnabled(false);
llPoints.addView(view);
}
}

privateint[]getImageResIDs(){
returnnewint[]{
R.drawable.bg1,
R.drawable.bg2,
R.drawable.bg3,
R.drawable.pic_01,
R.drawable.pic_02
};
}

privateString[]getImageDescription(){
returnnewString[]{
"第一個引導頁面",
"第二個引導頁面",
"第三個引導頁面",
"第四個引導頁面",
"第五個引導頁面"
};
}
@Override
(intarg0){

}
@Override
publicvoidonPageScrolled(intarg0,floatarg1,intarg2){

}
@Override
publicvoidonPageSelected(intposition){
//改變圖片的描述信息
tvDescription.setText(imageDescriptions[position%imageViewList.size()]);
//切換選中的點,把前一個點置為normal狀態
llPoints.getChildAt(previousSelectPosition).setEnabled(false);
//把當前選中的position對應的點置為enabled狀態
llPoints.getChildAt(position%imageViewList.size()).setEnabled(true);
previousSelectPosition=position%imageViewList.size();
}
@Override
protectedvoidonDestroy(){
super.onDestroy();
isLoop=false;
}
}
</span>

2. 在android中怎樣用雙緩沖機制實現背景圖片的循環移動

不斷的重繪z這一zhang張背景圖.X的坐標不斷減去一個偏移量 如果背景的x坐標小於0的時候在dang'qian當前背景的weightde的地方繪制新de的背景 ha還是原來的bei'ji背景.新bei'j背景的X坐標為原背景的kua寬度

3. Android自定義View-一張背景圖片移動

一張背景圖從右到左緩慢移動,無限循環!

1.先把圖片讀取出來修改尺寸(以屏幕高度為標准縮放圖片大小)。
2.設置屬性動畫ValueAnimator.ofInt(0, mBitmapW) //mBitmapW是圖片修改過後寬度。
3.通過mValue裁減圖片進行繪制。

4. android中怎麼讓輪播圖無限循環

比如有三張圖要輪詢

一般的做法是先創建一個適配器,getCount返回int最大值。
activity中聲明一個變數i來記錄當前應該顯示第幾張。一般初始化為int最大值/2就好。

然後再onResume中來啟動線程。用來執行一個while來無限循環。停留兩秒鍾i+1然後更新viewpager。調用viewpager.setCurrentItem(i) 方法來設置.
這時候會調用PagerAdapter的instantiateItem方法。position%3 也就是i%總共幾張圖。就是要顯示的圖片。

5. android循環播放圖片的時間間隔設置問題

android:ration="60000"這個就是時間間隔,每張圖片的停留時間。60000是個很長的時間了,說不上非常快速。不知道你是不是想說,4張圖片播放完了後,再播放一遍的間隔時間?還是每張圖片的播放間隔時間?

6. 在android開發中如何實現多張圖片的循環顯示

loading.xml
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:ration="150" android:drawable="@drawable/loading_01" />
<item android:ration="150" android:drawable="@drawable/loading_02" />型伍枝
<item android:ration="150" android:drawable="@drawable/loading_03" />
<item android:ration="橘族150" android:drawable="@drawable/loading_04" />
<item android:ration="150"卜敏 android:drawable="@drawable/loading_05" />
<item android:ration="150" android:drawable="@drawable/loading_06" />
<item android:ration="150" android:drawable="@drawable/loading_07" />
</animation-list>

<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="false"
android:indeterminateDrawable="@anim/loading" />

7. android怎麼用viewpager實現輪播圖循環

這里要補充一下,在這個項目中我把圖片輪播寫進了一個Viewholder里內嵌在了Recyclelistview里。但本文只介紹圖片輪播部分的實現:
整體思路:使用handler的延時發送方法(sendEmptyMessageDelayed)實現在adapter中控制Viewpager圖片輪播
具體實現分為三個部分:
http://blog.csdn.net/qq_22770457/article/details/51198688

8. android的自帶圖庫怎樣實現循環播放圖片

可以啊,幻燈片模式下,你可以程序判斷是否到最後一張,然後設置它下一張播放的index的

9. android 怎麼實現圖片循環顯示

你可以判斷一下,如果是第一張,右劃載入最後一張,如果是最後一張,左劃載入第一張

首尾銜接的方法和上面一樣,只是此時gallery適配的adapter的getCount要設成一個比較大的數,然後載入的時候從中李賣間開始,給人的感覺像是在循環,其實不是在真正的循環,因為如果你一直向一個方向滑滾擾拍動,終有終止的時候。目前我沒有找到更好的gallery循環。大羨

10. 在Android里怎麼讓一張png圖片循環旋轉,就像雷達裡面那個,不停地旋轉,可以有按鈕控制開關的

使用皮歲android中的野握漏旋轉動畫,讓imageview以自身為中心旋轉,在寫個Button控頌爛制動畫的開始結束

可參考:http://blog.csdn.net/feng88724/article/details/6318430

熱點內容
預編譯頭子目錄 發布:2025-05-09 23:05:39 瀏覽:174
出軌資料庫 發布:2025-05-09 22:48:47 瀏覽:148
java過濾器的作用 發布:2025-05-09 22:44:06 瀏覽:857
定投策略演算法 發布:2025-05-09 22:21:36 瀏覽:601
梯形糾正演算法 發布:2025-05-09 22:16:46 瀏覽:717
解壓心跳聲 發布:2025-05-09 22:16:10 瀏覽:718
如何取消安卓手機程序隱私密碼 發布:2025-05-09 21:48:03 瀏覽:48
c語言字元串數組連接 發布:2025-05-09 21:46:37 瀏覽:133
源碼的移碼 發布:2025-05-09 21:25:01 瀏覽:754
ie內核緩存 發布:2025-05-09 21:19:35 瀏覽:545