在Android app中實(shí)現(xiàn)九(n)宮格圖片連續(xù)滑動(dòng)效果
今天寫這篇文章的緣由是前一段時(shí)間一個(gè)網(wǎng)友在我的博客上面留言,想要實(shí)現(xiàn)在GridLayout(相當(dāng)于九宮格)中點(diǎn)擊每項(xiàng)可左右滑動(dòng)顯示該宮格的圖片,當(dāng)該宮格的圖片顯示完以后,接著顯示下一宮格的圖片。那么看過我以前關(guān)于滑動(dòng)方面的文章的朋友,相信要實(shí)現(xiàn)前者的效果并不難,關(guān)鍵在于如何實(shí)現(xiàn)后者,即如何在一個(gè)宮格的圖片顯示完以后,接著顯示下一宮格的圖片。那么這就是我們今天這篇文章要探討的內(nèi)容。
說到這里呢,首先對(duì)這位網(wǎng)友說聲抱歉,由于前些日子太忙,直到現(xiàn)在有那么一點(diǎn)時(shí)間來寫這篇文章,畢竟平常工作也比較忙,不能即時(shí)回答大家的問題,還請(qǐng)諒解。
好了,言歸正傳,繼續(xù)來介紹我們的內(nèi)容。在這篇文章里,我們實(shí)現(xiàn)的示例帶有什么樣的功能呢?為了大家能更多的學(xué)習(xí)Android方面的知識(shí),我的這個(gè)示例除了實(shí)現(xiàn)上面討論的功能以外,還實(shí)現(xiàn)了如下的功能:
- 圖片多線程加載;
- 圖片可自動(dòng)瀏覽;
- 可隱藏頭部和底部;
- 圖片加載時(shí)可顯示翻牌效果;
- 宮格切換時(shí)實(shí)現(xiàn)3D切換效果;
- 宮格圖片可切換成ListView樣式;
- 可配置各種選項(xiàng),比如緩存大小、線程池大小、圖片顯示等。
為了大家能更好的理解,我們先來看下要實(shí)現(xiàn)的效果圖:


大家看了效果圖之后就會(huì)有一種似曾相識(shí)的感覺。這就對(duì)了,因?yàn)檫@種效果在新聞客戶端中比較常見,當(dāng)然也可以用于其他的應(yīng)用當(dāng)中。
下面就讓我們開始實(shí)現(xiàn)過程。
先熟悉下MainActivity.java的代碼,如下:
package com.palace.image.activity;
import com.image.loader.core.DisplayImageOptions;
import com.palace.image.R;
import com.palace.image.adapter.GridViewAdapter;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.AdapterView.OnItemClickListener;
/**
* Android實(shí)現(xiàn)宮格圖片連續(xù)滑動(dòng)效果
* @Description: Android實(shí)現(xiàn)宮格圖片連續(xù)滑動(dòng)效果
* @File: MainActivity.java
* @Package com.palace.image.activity
* @Author Hanyonglu
* @Date 2012-09-19 下午05:57:34
* @Version V1.0
*/
public class MainActivity extends BaseActivity {
private GridView gridView = null;
private String[] imageValues = null;
private String[] titleValues = null;
private DisplayImageOptions options;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
// 初始化
initViews();
}
/**
* 初始化
*/
private void initViews(){
titleValues = getResources().getStringArray(R.array.news_title);
imageValues = getResources().getStringArray(R.array.small_images);
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_image_load)
.showImageForEmptyUri(R.drawable.ic_image_load)
.cacheInMemory()
.cacheOnDisc()
.build();
gridView = (GridView) findViewById(R.id.gridview);
gridView.setSelector(new ColorDrawable(Color.TRANSPARENT));
gridView.setAdapter(new GridViewAdapter(
this, imageValues,titleValues,imageLoader,options));
gridView.setOnItemClickListener(itemOnClickListener);
}
// GridView單擊項(xiàng)事件監(jiān)聽器
private OnItemClickListener itemOnClickListener = new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, ImageActivity.class);
intent.putExtra("item_index", position);
startActivity(intent);
}
};
@Override
protected void onStop() {
super.onStop();
imageLoader.stop();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
imageLoader.stop();
}
}
- Android App中實(shí)現(xiàn)向右滑動(dòng)銷毀功能的要點(diǎn)解析
- Android中ViewPager實(shí)現(xiàn)滑動(dòng)指示條及與Fragment的配合
- Android ViewPager無限循環(huán)實(shí)現(xiàn)底部小圓點(diǎn)動(dòng)態(tài)滑動(dòng)
- 自定義滑動(dòng)按鈕為例圖文剖析Android自定義View繪制
- 詳解Android應(yīng)用開發(fā)中Scroller類的屏幕滑動(dòng)功能運(yùn)用
- Android實(shí)現(xiàn)手勢(shì)滑動(dòng)多點(diǎn)觸摸縮放平移圖片效果
- Android手勢(shì)滑動(dòng)實(shí)現(xiàn)ImageView縮放圖片大小
- Android實(shí)現(xiàn)手勢(shì)滑動(dòng)多點(diǎn)觸摸放大縮小圖片效果
- Android手勢(shì)滑動(dòng)實(shí)現(xiàn)兩點(diǎn)觸摸縮放圖片
- Android編程滑動(dòng)效果之倒影效果實(shí)現(xiàn)方法(附demo源碼下載)
- Android編程實(shí)現(xiàn)可滑動(dòng)的開關(guān)效果(附demo源碼下載)
相關(guān)文章
Android 調(diào)用設(shè)備已有的相機(jī)應(yīng)用詳情
這篇文章主要介紹了Android 調(diào)用設(shè)備已有的相機(jī)應(yīng)用,如果我們只是需要讓用戶能夠拍攝照片,則可以直接請(qǐng)求已有相機(jī)應(yīng)用拍攝照片并將照片返回給我們,下面我們一起來看看這些功能,需要的朋友可以參考一下2021-10-10
Android 集成 google 登錄并獲取性別等隱私信息的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android 集成 google 登錄并獲取 性別等隱私信息,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
OpenHarmony實(shí)現(xiàn)屏幕亮度動(dòng)態(tài)調(diào)節(jié)方法詳解
大家在拿到dayu之后,都吐槽說,會(huì)經(jīng)常熄屏,不利于調(diào)試,那么有沒有一種辦法,可以讓app不熄屏呢,答案是有的,今天我們就來揭秘一下,如何控制屏幕亮度2022-11-11
Android 為L(zhǎng)istView添加分段標(biāo)頭的方法
下面小編就為大家?guī)硪黄狝ndroid 為L(zhǎng)istView添加分段標(biāo)頭的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04
Android編程實(shí)現(xiàn)自定義控件的方法示例
這篇文章主要介紹了Android編程實(shí)現(xiàn)自定義控件的方法,結(jié)合實(shí)例形式分析了Android自定義控件的布局、功能實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2017-06-06
Android Activity與Fragment實(shí)現(xiàn)底部導(dǎo)航器
這篇文章主要介紹了Android Activity與Fragment實(shí)現(xiàn)底部導(dǎo)航器的相關(guān)資料,并附實(shí)例代碼,需要的朋友可以參考下2016-11-11
monkeyrunner環(huán)境搭建及實(shí)例教程(3)
這篇文章主要為大家詳細(xì)介紹了monkeyrunner環(huán)境搭建及實(shí)例教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11

