Android實作圖片瀏覽器範例
本文所述為一個基礎的Android圖片瀏覽器代碼,是仿寫Google原版實現的,代碼中實現了主要的實現過程和方法,具體的完善還需要自己添加,代碼中有很多註釋,可幫助新手們快速理解程式碼,使用了部分圖像資源。
主要功能代碼如下:
package com.android.coding; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.Gallery.LayoutParams; import android.widget.ViewSwitcher.ViewFactory; import android.widget.ImageSwitcher; import android.widget.ImageView; public class ViewPicturesActivity extends Activity { ImageSwitcher imageSwitcher; //声明ImageSwitcher对象,图片显示区域 Gallery gallery; //声明Gallery对象,图片列表索引 int imagePosition; //标记图片数组下标,用于循环显示 //声明图片整型数组 private int[] images = { R.drawable.image1,R.drawable.image2, R.drawable.image3,R.drawable.image4, R.drawable.image5,R.drawable.image6, R.drawable.image7,R.drawable.image8, R.drawable.image9,R.drawable.image10, R.drawable.image11,R.drawable.image12, R.drawable.image13,R.drawable.image14, R.drawable.image15,R.drawable.image16, R.drawable.image17}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //通过控件的ID获得imageSwitcher的对象 imageSwitcher = (ImageSwitcher) findViewById(R.id.switcher); //设置自定义的图片显示工厂类 imageSwitcher.setFactory(new MyViewFactory(this)); //通过控件的ID获得gallery的对象 gallery = (Gallery) findViewById(R.id.gallery); //设置自定义的图片适配器 gallery.setAdapter(new ImageAdapter(this)); //实现被选中的事件监听器 gallery.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { //通过求余数,循环显示图片 imageSwitcher.setImageResource(images[position%images.length]); } @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub } }); } //自定义图片适配器,继承BaseAdapter class ImageAdapter extends BaseAdapter{ private Context context; //定义上下文 //参数为上下文的构造方法 public ImageAdapter(Context context) { this.context = context; } //得到图片的大小 @Override public int getCount() { //设置为整型的最大数 return Integer.MAX_VALUE; } //得到指定图片的对象 @Override public Object getItem(int position) { return null; } //得到指定图片的对象的ID @Override public long getItemId(int position) { return 0; } //显示图标列表 @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView iv = new ImageView(context); //创建ImageView对象 iv.setImageResource(images[position%images.length]); //设置循环显示图片 iv.setAdjustViewBounds(true); //图片自动调整显示 //设置图片的宽和高 iv.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); return iv; //返回ImageView对象 } } //自定义图片显示工厂类,继承ViewFactory class MyViewFactory implements ViewFactory{ private Context context; //定义上下文 //参数为上下文的构造方法 public MyViewFactory(Context context) { this.context = context; } //显示图标区域 @Override public View makeView() { ImageView iv = new ImageView(context); //创建ImageView对象 iv.setScaleType(ImageView.ScaleType.FIT_CENTER); //图片自动居中显示 //设置图片的宽和高 iv.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); return iv; //返回ImageView对象 } } }
登入後複製
本文所述僅為其主要功能代碼部分,讀者可以對其進一步加以完善。由圖像檢視器還可以擴展出許多實用的Android圖像操作功能,這些都是作為一個android應用開發新手應該搞定的技巧。
更多Android實作圖片瀏覽器範例相關文章請關注PHP中文網!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

2025年的前4個JavaScript框架:React,Angular,Vue,Svelte

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題已修復

如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?

如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?
