『壹』 android圖片輪播怎麼實現
正常就可以實現的吧,因為這個圖片還是比較輕松的,我都是使用的
『貳』 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:
『肆』 在android中廣告輪播是怎麼做的
第二種:使用ViewFlipper實現圖片的輪播
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:
left_in:
android:ration=5000
android:fromXDelta=100%p
android:toXDelta=0/>
left_out:
android:fromXDelta=0
android:toXDelta=-100%p
android:ration=5000/>
一個布局文件:
xmlns:tools=http://schemas.android.com/tools
android:layout_width=match_parent
android:layout_height=match_parent
tools:context=.MainActivity >
android:id=@+id/flipper
android:layout_width=fill_parent
android:layout_height=fill_parent/>
一個主類:
public class MainActivity extends Activity {
private ViewFlipper flipper;
private int[] resId = {R.drawable.pc1,R.drawable.pc2,R.drawable.pc3,R.drawable.pc4};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
flipper = (ViewFlipper) findViewById(R.id.flipper);
/*
* 動態導入的方式為ViewFlipper加入子View
* */
for (int i = 0; i < resId.length; i++) {
flipper.addView(getImageView(resId[i]));
}
/*
* 為ViewFlipper去添加動畫效果
* */
flipper.setInAnimation(this, R.anim.left_in);
flipper.setOutAnimation(this, R.anim.left_out);
flipper.setFlipInterval(5000);
flipper.startFlipping();
}
private ImageView getImageView(int resId){
ImageView image = new ImageView(this);
image.setBackgroundResource(resId);
return image;
}
}
那麼這樣就實現了一個圖片輪詢的功能效果了
我們還可以添加點擊,滑動效果:
我們還需要添加兩個向右的滑動效果:
right_in:
android:fromXDelta=0
android:toXDelta=-100%p
android:ration=2000/>
right_out:
android:fromXDelta=100%p
android:toXDelta=0
android:ration=2000/>
然後我們還需要在主類裡面添加(如果你不想讓圖片自動播放,只想通過手勢來實現圖片播放那麼你需要把「為ViewFlipper添加動畫效果的代碼」刪掉):
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getX();
break;
case MotionEvent.ACTION_MOVE://判斷向左滑動還是向右滑動
if (event.getX() - startX > 100) {
flipper.setInAnimation(this, R.anim.left_in);
flipper.setOutAnimation(this, R.anim.left_out);
flipper.showPrevious();
}else if (startX - event.getX() > 100) {
flipper.setInAnimation(this, R.anim.right_in);
flipper.setOutAnimation(this, R.anim.right_out);
flipper.showNext();
}
case MotionEvent.ACTION_UP:
break;
}
return super.onTouchEvent(event);
}
『伍』 Android使用ViewPager實現輪播圖(自動和手動)
源碼鏈接
效果圖
1.自動輪播
2.手動輪播
3.監聽點擊事件跳轉界面
4.每個圖片可加標題(我的圖片顏色太鮮艷了,就沒有讓文字顯示)
介面回調步驟:
如果界面滾動了,獲取當前的item,如果item==0,就設置為最後一個,如果,item==count+1,就設置為第一個,這樣可以實現第一個圖片和最後一個圖片切換時不會出現閃現或卡頓的畫面
這里用到了SparseBooleanArray,它是用來存儲布爾值的,類似於key,value,根據其中存放的值來判斷是否被選中
『陸』 Android中viewpager做的圖片輪播效果,怎麼給每一張圖片設置單擊事件監聽,單擊圖片打開
因為viewpager本身底層已經攔截了監聽事件,所以需要在如下添加點擊事件:
直接在pager的adapter中,對該item的imageview設置點擊事件,通過傳參進來的handler發送出去,肯定能獲得點擊事件和點擊的position.
點評
『柒』 Android搜索框中文字輪播控制項TextBanner
閑話不多說,先看效果圖:
依賴: implementation 'com.haowen:textbanner:1.0.4'
1:想要達到輪播效果,兩個View交替出現即可,既然是兩個View那麼就需要一個父容器(TextBanner繼承FrameLayout):
2:間隔性就用Handler的postDelayed來實現就行了,為了防止內存泄漏,這里採用WeakHandler
3:交替出現的動畫(TextBanner只用了一個簡單的Y方向平移動畫,並不支持動畫設置,因為我覺得沒必要花里胡哨的,如果後期有需要,可以考慮提示自定義)
5:數據設置適配器,這里採用Adapter的形式(看方法名應該很好理解,似曾相識):
Github傳送門 biu biu biu ~~~
『捌』 android 輪播列表怎麼實現
第一種:使用動畫的方法實現:
這種發放需要:兩個動畫效果,一個布局,一個主類來實現,
public class IamgeTrActivity extends Activity {
/** Called when the activity is first created. */
public ImageView imageView;
public ImageView imageView2;
public Animation animation1;
public Animation animation2;
public TextView text;
public boolean juage = true;
public int images[] = new int[] { R.drawable.icon, R.drawable.expriment,
R.drawable.changer, R.drawable.dataline, R.drawable.preffitication };
public int count = 0;
public Handler handler = new Handler();
public Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
AnimationSet animationSet1 = new AnimationSet(true);
AnimationSet animationSet2 = new AnimationSet(true);
imageView2.setVisibility(0);
TranslateAnimation ta = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF,
-1f, Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 0f);
ta.setDuration(2000);
animationSet1.addAnimation(ta);
animationSet1.setFillAfter(true);
ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1.0f,
Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF,
0f, Animation.RELATIVE_TO_SELF, 0f);
ta.setDuration(2000);
animationSet2.addAnimation(ta);
animationSet2.setFillAfter(true);
//iamgeView 出去 imageView2 進來
imageView.startAnimation(animationSet1);
imageView2.startAnimation(animationSet2);
imageView.setBackgroundResource(images[count % 5]);
count++;
imageView2.setBackgroundResource(images[count % 5]);
text.setText(String.valueOf(count));
if (juage)
handler.postDelayed(runnable, 6000);
Log.i(handler, handler);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageView = (ImageView) findViewById(R.id.imageView);
imageView2 = (ImageView) findViewById(R.id.imageView2);
text=(TextView)findViewById(R.id.text);
text.setText(String.valueOf(count));
//將iamgeView先隱藏,然後顯示
imageView2.setVisibility(4);
handler.postDelayed(runnable, 2000);
}
public void onPause() {
juage = false;
super.onPause();
}
}
android:orientation=vertical
android:layout_width=fill_parent
android:layout_height=fill_parent
android:id=@+id/rl>
android:id=@+id/imageView
android:layout_width=fill_parent
android:background=@drawable/icon
android:layout_below=@+id/rl
android:layout_height=120dp />
android:id=@+id/imageView2
android:layout_width=fill_parent
android:background=@drawable/expriment
android:layout_below=@+id/rl
android:layout_height=120dp />
android:id=@+id/text
android:layout_width=fill_parent
android:layout_height=wrap_content
android:layout_below=@id/imageView/>
第二種:使用ViewFlipper實現圖片的輪播
Android系統自帶的一個多頁面管理控制項,它可以實現子界面的自動切換:
首先 需要為ViewFlipper加入View
(1) 靜態導入:在layout布局文件中直接導入
(2) 動態導入:addView()方法
ViewPlipper常用方法:
setInAnimation:設置View進入屏幕時候使用的動畫
setOutAnimation:設置View退出屏幕時候使用的動畫
showNext:調用該函數來顯示ViewFlipper裡面的下一個View
showPrevious:調用該函數來顯示ViewFlipper裡面的上一個View
setFlipInterval:設置View之間切換的時間間隔
startFlipping使用上面設置的時間間隔來開始切換所有的View,切換會循環進行
stopFlipping:停止View切換
『玖』 Android實現文字輪播(控制項 TextBannerView)
1.導入依賴
2..在布局文件中添加TextBannerView,可以設置自定義屬性
3.在Activity或者Fragment中找TextBannerView控制項
4.設置數據
5.點擊事件
6.在Activity或者Fragment中的onResume()和onStop()方法分別調用startViewAnimator()和stopViewAnimator(),防止返回頁面出現文字重影問題!