導航:首頁 > 操作系統 > android圖片滑動效果

android圖片滑動效果

發布時間:2022-05-15 21:22:35

android GridView 點擊 進入圖片左右滑動 求個方法

全屏瀏覽可以用ImageView的setImageResource,全屏的屬性在manifest的activity上設置,
左右滑動使用Gallery拖動效果,創建一個int數組存放圖片的id,繼承Adapyer重寫getView方法,網上有代碼的,我的代碼都被加密了,公司電腦

❷ 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>

❸ android 實現如圖片這樣的左右滑動,中間item的左邊的item出來一點。中間的Item的右邊的item出來一點,

我也覺得是用Gallery,設置每個Item的大小 以及間距,可以實現這種效果

❹ android怎麼實現 圖片滑動,並且底部小圓點隨之無限滑動

什麼叫無限滑動。。。你的意思是有幾張圖片就自動有幾個暗色的點滑一張圖亮色的點就位移一下么


如果你是這個意思的話

首先滑動圖片用viewpager 所有圖片id或者url都放到數組里

guesterIds=newint[]{R.drawable.guester,R.drawable.guester1,
R.drawable.guester3,R.drawable.guester4,R.drawable.guester5};


在初始化的時候分別初始化這些圖片和原點


下面這個代碼是初始化圖片生成imageview然後裝到viewpager的adpater裡面

(intid){
ImageViewiv=newImageView(this);
ImageLoader.getInstance().displayImage("drawable://"+id,iv,options);
//iv.setImageResource(id);
ViewGroup.LayoutParamsparams=newViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
iv.setLayoutParams(params);
iv.setScaleType(ScaleType.FIT_CENTER);
returniv;
}



下面這個代碼是動態生成一個布局裡面裡面是圓點

dotView=newImageView(this);
dotView.setImageResource(R.drawable.dot2_w);

LinearLayout.LayoutParamslayoutParams=newLinearLayout.LayoutParams(Util.dip2px(mContext,20),
Util.dip2px(mContext,10),1.0f);
dotView.setLayoutParams(layoutParams);
dotView.setScaleType(ScaleType.FIT_CENTER);
dotContain.addView(dotView);


然後再每次滑動圖片的時候都從viewpager的監聽中移動小圓點

pager.setOnPageChangeListener(newViewPager.SimpleOnPageChangeListener(){
@Override
publicvoidonPageSelected(intposition){

intpos=position%guesterIds.length;
moveCursorTo(pos);
curPos=pos;
super.onPageSelected(position);
}
});


移動小圓點的方法其實就是以一個translation的動畫

privatevoidmoveCursorTo(intposition){
AnimationSetanimationSet=newAnimationSet(true);
TranslateAnimationtAnim=
newTranslateAnimation(offset*curPos,offset*position,0,0);
animationSet.addAnimation(tAnim);
animationSet.setDuration(300);
animationSet.setFillAfter(true);
curDot.startAnimation(animationSet);
}


希望能啟發你的思路

❺ android 顯示一行圖片且可以左右滑動

這個使用水平滾動條,裡面嵌套gridview能夠完美實現,網上應該有開源工程,你可以查一下

❻ 安卓手機如何設置滑動桌面圖標動壁紙也會動

桌面設置裡面勾選上「壁紙跟隨滾動」即可實現你想要的效果,如果在桌面設置里找不到該選項,說明你目前使用的壁紙不支持這個效果

❼ android應用模仿android桌面效果,就是拖動頁面時背景圖片隨之滾動,但是滾動的幅度比頁面拖動的幅度小。

桌面(Launcher)移動時背景隨著緩動是通過設置WallpaperManager相應狀態實現的。如果你想在自己的應用中實現類似效果,可以模仿壁紙的實現方式。大致思路:
1.確定好緩動圖片大小,大於實際顯示寬度(Launcher中豎屏時通常是屏幕寬度的2倍)
2. 應用多個頁面滑動的過程中,根據頁面個數,當前滑動的位置等計算好對應的比例,結合背景緩動圖片的大小實時更新背景緩動的距離。

❽ 在android平台上怎麼實現像圖片的瀏覽 左右滑動切換圖片,然後底部是圓點顯示當前是哪一個圖片

安卓5.0自帶左右滑動切換圖片的功能

一、依次點 應用程序---相冊

❾ Android實現圖庫功能,查看本應用drawable下的所有圖片,且能左右滑動切換上一頁或下一頁圖片

使用ImageLoader
源碼地址
https://github.com/nostra13/Android-Universal-Image-Loader
可以通過這個框架來載入以下類型的圖片
"http://site.com/image.png" // from Web
"file:///mnt/sdcard/image.png" // from SD card
"file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail)
"content://media/external/images/media/13" // from content provider
"content://media/external/video/media/13" // from content provider (video thumbnail)
"assets://image.png" // from assets
"drawable://" + R.drawable.img // from drawables (non-9patch images)

官網有例子,使用非常簡單,一行代碼搞定

❿ Android ViewPager滑動控制多張圖片動畫效果怎麼實現

重新viewpager OnPageChangeListener介面onPageScrolled 實現方法 ,/* 當前頁滾動時調用,無論是程序控制的平滑滾動還是用戶發起的觸摸滾動。 * arg0:第一個頁面當前顯示的位置索引。如果頁面偏移不是0,下一個頁面將會可見。 * arg1:表示第二個頁面位置偏移量的比例值,[0, 1)。(右側頁面所佔屏幕百分比) * arg2:表示第二個頁面位置偏移量的像素值。(右側頁面距右邊的像素值) */ public void onPageScrolled(int arg0, float arg1, int arg2) 動畫的話 用TranslateAnimation 動畫 查看更多答案>>

閱讀全文

與android圖片滑動效果相關的資料

熱點內容
如何重啟資料庫伺服器 瀏覽:656
聯通程序員發展怎麼樣 瀏覽:703
山東省聯想伺服器供貨商雲空間 瀏覽:143
鴻天神尊小說哪個app可以看 瀏覽:394
做程序員的沒朋友嗎 瀏覽:356
阿里雲伺服器傳奇微端 瀏覽:922
phplinux時間 瀏覽:447
雲伺服器20性能 瀏覽:986
android強制系統橫屏 瀏覽:280
怎麼提前看未播出的電視劇app 瀏覽:666
cad轉pdf圖層 瀏覽:600
程序員接私活初級 瀏覽:434
全無油潤滑壓縮機 瀏覽:185
代碼加密常用方法 瀏覽:953
安卓手機如何解除已禁用 瀏覽:396
演算法的隨機性 瀏覽:487
高中解壓體育游戲 瀏覽:533
androidstudior丟失 瀏覽:345
命令行筆記 瀏覽:739
360目標文件夾訪問拒絕 瀏覽:520