`
haitian235
  • 浏览: 62644 次
  • 性别: Icon_minigender_1
  • 来自: 海南
社区版块
存档分类
最新评论

android 网络图片查看器

阅读更多
package cn.yinuo.picture;

import java.io.File;



import cn.yinuo.picture.R;
import cn.yinuo.search.Search;
import cn.yinuo.service.ImageServiceBean;
import android.app.Activity;
import android.os.Bundle;

import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class ImageListActivity extends Activity {
private ImageSwitcher imageSwitcher;
private Gallery gallery;
private int index = 0;//记录当前浏览的图片索引
private ImageServiceBean imageService;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button  search = (Button) findViewById(R.id.search);
search.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
Intent intent=new Intent(ImageListActivity.this,Search.class);
startActivity(intent);

}
});
  
imageService = new ImageServiceBean(this);

imageSwitcher = (ImageSwitcher) findViewById(R.id.switcher);
imageSwitcher.setFactory(new ImageSwitcher.ViewFactory() {
public View makeView() {
ImageView i = new ImageView(ImageListActivity.this);
i.setImageURI(imageService.getBigBitmap(index));//默认显示第一张图
     i.setBackgroundColor(0xFF000000);
     i.setScaleType(ImageView.ScaleType.FIT_CENTER);
     i.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
     return i;
}
});
imageSwitcher.setOnClickListener(new View.OnClickListener() {//点击全屏显示图片
public void onClick(View v) {
showPicture();
}
});

gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter(new ImageAdapter(this));//绑定数据
gallery.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
imageSwitcher.setImageURI(imageService.getBigBitmap(position));
index = position;
}
});
gallery.setSelection(index);

    Button quit = (Button) findViewById(R.id.quit);
quit.setOnClickListener(new View.OnClickListener() {//退出应用
public void onClick(View v) {
finish();
}
});

}


//打开全屏显示图片
private void showPicture() {
Intent intent = new Intent(ImageListActivity.this, ShowActivity.class);
intent.putExtra("imageuri", imageService.getBigBitmap(index).toString());
startActivity(intent);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { //处理按键事件,注:Gallery已经处理了左右键移动图片,我们只需处理确认键打开全图
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_CENTER://确认键
index = gallery.getSelectedItemPosition();//获取当前图片的索引
imageSwitcher.setImageURI(imageService.getBigBitmap(index));//显示对应索引图片
showPicture();
break;
}
return super.onKeyDown(keyCode, event);
}

@Override
protected void onDestroy() {
super.onDestroy();
if(this.getCacheDir().exists()){//清除缓存图片
for(File file : this.getCacheDir().listFiles()){
file.delete();
}
}
android.os.Process.killProcess(android.os.Process.myPid());//杀死进程,关闭应用
}

private final class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;

TypedArray a = obtainStyledAttributes(R.styleable.Gallery);

mGalleryItemBackground = a.getResourceId(R.styleable.Gallery_android_galleryItemBackground, 0);

a.recycle();
}

/*返回图片数目 */
public int getCount() {
return imageService.getLength();
}

public long getItemId(int position) {
return position;
}
/* 覆盖的方法getView,返回一View对象 */
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
/* 设置图片给imageView对象 */
i.setImageURI(imageService.getSmallBitmap(position));
/* 重新设置图片的宽高 */
i.setScaleType(ImageView.ScaleType.FIT_XY);
/* 重新设置Layout的宽高 */
i.setLayoutParams(new Gallery.LayoutParams(70, 60));
/* 设置Gallery背景图 */
i.setBackgroundResource(mGalleryItemBackground);
return i;
}
public Object getItem(int position) {
return imageService.getSmallBitmap(position);
}
}
}
分享到:
评论
1 楼 degjeg 2012-07-26  
下了你的代码 一跑就崩啊,

相关推荐

    android网络图片查看器简单实现代码

    本篇将介绍如何实现一个简单的Android网络图片查看器,主要分为以下几个关键步骤: 1. **布局设计**: 在`activity_main.xml`布局文件中,我们有三个主要组件:一个`EditText`用于输入图片URL,一个`Button`作为...

    网络图片查看器Android

    【网络图片查看器Android】是一款基于Android平台的图片浏览应用,旨在帮助用户便捷地查看网络上的图片资源。这款应用的开发教程可能源自黑马程序员的视频课程,并且在原教程基础上添加了作者个人的理解和注释,以...

    网络图片查看器

    【网络图片查看器】是一种应用程序,它允许用户在互联网上浏览和查看图片,而无需打开网页浏览器或访问特定的图片网站。这样的应用通常通过HTTP协议与服务器进行交互,获取图片资源,然后在本地进行显示。这里,我们...

    Android图片查看器源代码

    在Android开发中,图片查看器是一个常见的功能,用于在应用内展示用户选择或者应用需要显示的图片。这个“Android图片查看器源代码”提供了一种实现这一功能的解决方案。源代码通常包括了图像加载库、手势操作、缩放...

    android图片查看器

    在Android开发中,创建一个图片查看器是常见的需求,它能够帮助用户查看和浏览应用程序中的图像资源。这个项目中提到的“android图片查看器”是一个简单的实现,它可能包括一个自定义对话框来显示图片,并提供了基本...

    Android图片查看器

    在Android应用开发中,创建一个自定义的图片查看器是常见的需求,特别是在设计个人化相册或媒体管理应用时。本教程将深入探讨如何利用Glide库来实现这一功能,以构建一个高效的“Android图片查看器”。 Glide是一款...

    Android网络通信之网络图片查看器事例代码

    在Android开发中,网络通信是不可或缺的一部分,尤其是在创建一个能够加载网络图片的查看器时。本文将深入探讨如何处理“android.os....通过学习和实践,我们可以创建出高效且用户体验良好的网络图片查看器。

    kotlin项目--图片查看器

    总的来说,【Kotlin项目——图片查看器】是一个全面展示Kotlin在Android开发中应用的好例子,涵盖了语言特性、Android框架和用户体验设计等多个方面。通过这个项目,开发者不仅可以提升Kotlin编程技能,还能深入了解...

    图片查看器 Android

    【图片查看器 Android】是一款专为Android平台设计的应用程序,旨在提供便捷、高效且功能丰富的图片浏览体验。在Android设备上,用户经常会遇到需要查看、管理个人照片或图像的情况,而一个良好的图片查看器能够极大...

    android 图片查看器 java 语言

    在Android开发中,图片查看器是一个常见的需求,用于展示用户选择或者应用内生成的图片。本项目名为"TestTouch-master",显然它是一个基于Java语言实现的Android图片查看器,支持图片的缩放和平移功能,并且利用了...

    android 图片查看器

    在Android平台上,开发一个图片查看器是一个常见的需求,它能够帮助用户浏览和管理手机上的图片。本项目基于Eclipse IDE实现,充分利用了Android系统提供的多媒体API以及流和多线程技术,来提供流畅且高效的图片浏览...

    安卓网络图片查看放大缩小,带有本地图片查看

    综上所述,创建一个“安卓网络图片查看放大缩小,带有本地图片查看”的应用,需要掌握图片加载库、手势识别、图片缓存策略、UI设计等多个方面的知识,同时注重性能优化和用户体验。通过合理的实现,可以为用户提供...

    安卓 网络图片查看器

    【安卓网络图片查看器】是一款基于安卓平台的轻量级图片浏览应用,旨在提供便捷的本地及网络图片查看功能,适合学习和交流之用。这个项目由Java编程语言实现,充分体现了Android SDK在图像处理和网络通信方面的强大...

    仿头条图片查看器

    【仿头条图片查看器】是一款针对安卓客户端开发的图片浏览应用源码,旨在提供类似今日头条的用户体验,让用户能够轻松地查看和浏览手机中的图片。在移动应用开发领域,图片查看功能是一个不可或缺的部分,尤其在社交...

    Android-AndroidRichText富文本解析器支持网络图片图片和链接点击事件

    "Android-AndroidRichText富文本解析器支持网络图片图片和链接点击事件"这个项目专注于提供一种高效且功能丰富的解决方案来处理富文本内容。富文本解析器允许开发者在应用中展示不仅仅是纯文本,还可以包括格式化...

Global site tag (gtag.js) - Google Analytics