从一个指定的目录文件下取图片显示可以左右滑动
例子显示的是从sdcard卡文件读取图片,并显示出来,判断当前是否有要读取的路径,如果有的话当前路径下是否有图片的判定
package com.lenovo.halo.gallery; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.Message; import android.os.PowerManager; import android.os.PowerManager.WakeLock; //import android.os.LauncherSyncManager; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; public class MainActivity extends Activity { private static final String TAG = "MyLauncher"; private MyHandler m_h; private ImageView i; private List<String> ImageList; private String[] list; // private int[] ids = { // R.drawable.p12, // R.drawable.p13, // R.drawable.p1, // R.drawable.p2, // R.drawable.p3, // R.drawable.p4, // R.drawable.p5, // R.drawable.p6, // R.drawable.p7, // R.drawable.p8, // R.drawable.p9, // R.drawable.p10, // R.drawable.p11 // // //no5test add img here!!!!!!! // }; int current = 0; TextView no_image; ImageView down_image,up_image; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); i = (ImageView) findViewById(R.id.image); no_image = (TextView) findViewById(R.id.no_image); up_image=(ImageView)findViewById(R.id.up_image); down_image=(ImageView)findViewById(R.id.down_image); ImageList = getSD(); Log.i(TAG, "ImageList.size()" + ImageList.size()); if (ImageList.size() > 0) { list = ImageList.toArray(new String[ImageList.size()]); Log.i(TAG, "ImageList.size()>0"); i.setImageURI(Uri.parse(list[current])); PowerManager a = (PowerManager) getSystemService(Context.POWER_SERVICE); WakeLock w = a.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG); w.acquire(); i.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View arg0, MotionEvent arg1) { // TODO Auto-generated method stub current++; if (current == list.length) { current = 0; } m_h.removeMessages(1); Message message1 = new Message(); message1.what = 1; m_h.sendMessage(message1); return false; } }); m_h = new MyHandler(); } else { no_image.setText("当前目录下没有可以显示的图片"); up_image.setVisibility(View.GONE); down_image.setVisibility(View.GONE); } // i.setImageResource(ids[current]); } private List<String> getSD() { List<String> it = new ArrayList<String>(); // String path = Environment.getExternalStorageDirectory() + ""; String path = "/data/imagedir/"; // File f = new File("/sdcard/"); Log.e("TEST", "+++++++++++" + path); File f = new File(path); File[] files = f.listFiles(); if (f.exists()) { File f1=new File(path+"/miwen.txt"); try { f1.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block Log.e("TEST",e.toString()); } if (files.length > 0) { for (int i = 0; i < files.length; i++) { File file = files[i]; if (getImageFile(file.getPath())) it.add(file.getPath()); } } else { no_image.setText("当前目录下没有可以显示的图片"); } } else { no_image.setText("您指定的目录不存在"); } return it; } private boolean getImageFile(String fName) { boolean re; String end = fName .substring(fName.lastIndexOf(".") + 1, fName.length()) .toLowerCase(); if (end.equals("jpg") || end.equals("gif") || end.equals("png") || end.equals("jpeg") || end.equals("bmp")) { re = true; } else { re = false; } return re; } class MyHandler extends Handler { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: // i.setImageResource(ids[current]); if(list!=null&&list.length>0){ i.setImageURI(Uri.parse(list[current])); Log.e(TAG, "current img is" + list[current] + "id is " + current); } break; } } } // @Override // public boolean onKeyUp(int keyCode, KeyEvent event) { // Log.e(TAG, "current img is" + list[current] + "id is " + current // + "event is" + event.getAction()); // if (event.getAction() == KeyEvent.ACTION_UP) { // switch (keyCode) { // case KeyEvent.KEYCODE_ENTER: // current++; // if (current == list.length) { // current = 0; // } // // // i.setImageResource(list[current]); // i.setImageURI(Uri.parse(list[current])); // // default: // break; // } // } // return super.onKeyDown(keyCode, event); // } @Override protected void onPause() { Log.i(TAG, "onPause"); this.finish(); System.exit(0); super.onPause(); } }
定义的XML
<RelativeLayout xmlns: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" tools:context="com.lenovo.halo.gallery.MainActivity" > <ImageView android:id="@+id/image" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="fitXY" /> <ImageView android:id="@+id/up_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:src="@drawable/up"/> <ImageView android:id="@+id/down_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:src="@drawable/down" /> <TextView android:id="@+id/no_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" /> </RelativeLayout>
在mainfast.xml里边定义读取的sdk权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
相关推荐
Gallery控件一般是用于显示图像列表,因此也称为是画廊控件, Gallery只能水平显示一行,而且支持水平滑动效果。也就是说,单击、选中或者拖动Gallery中的图像, Gallery图像中的列表会根据不同的情况向左向右移动...
上述实现的简单的浏览图片效果的程序。Gallery还可以和ImageView结合使用来实现一个通过缩略图来浏览图片的效果。
第一次做类似的东西,研究了很久。在没有使用异步和缓存时,做出来的效果会比较卡,尤其是页面比较大的时候,简直卡到爆,这是加入了异步和缓存之后的效果,已经好了很多,但是如果再优化一下,会更好,希望朋友们...
上次讲了如何使用Gallery控件,这次就讲Gallery与ImageSwitcher的结合使用,本文实现一个简单的浏览图片的功能。先贴出程序运行截图:除了Gallery可以拖拉切换图片,我在ImageSwitcher控件加入了setOnTouchListener...
很给力的一款图片轮播插件,点击某张图片可以移动到最中间放大,感觉很立体逼真,附上是个演示demo页面,该js插件已被jquery官方收录,你也可以点击这里(官网地址)
这里是计算机专业-Andorid项目源码100套之一的gallery重叠特效源码+注释,希望能对大家有所帮助哦!
刚刚学习Android,用Gallery作了一个小demo,用来记录一下。 package com.example.galleryex02; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view....
单击链接之一或在表单中提交输入,将向Flickr发送一个新请求,该请求将回送24张照片的集合作为响应。 该项目展示了使用React的API来获取数据集合的丰富知识。 -技能与技巧 HTML,CSS,javaScript,DOM操作,React...
这款django应用程序创建了一个网站,该网站与外部API(目前仅与Open Humans之一)接口,以导入Jupyter笔记本。 通过应用程序: 用户可以导入自己的.ipynb Notebook文件 导入的笔记本将直接在应用程序中呈现,并且...
这里是计算机专业-Andorid项目源码100套之一的Gallery从SD卡中获取图片,并显示,希望能对大家有所帮助哦!
这里是计算机专业-Andorid项目源码100套之一的android Gallery实现异步加载网络图片 并只加载当前停止页面图,希望能对大家有所帮助哦!
本文实例讲述了Android控件之Gallery用法。分享给大家供大家参考。具体如下: Gallery组件主要用于横向显示图像列表,不过按常规做法。Gallery组件只能有限地显示指定的图像。也就是说,如果为Gallery组件指定了10张...
我们知道现在智能手机上都有这样一种功能,就是你在浏览图片的时候。不是硬性的点击按钮而是可以实现手指的拖动,划开效果。使用户具有更好的交互体验,不过这种效果是如何实现的呢? 在Android中是通过Gallery来...
继上一篇介绍了如何使用Gallery控件之后,本文就来讲一下Gallery 与ImageSwitcher的结合使用。本文所述实例代码将实现一个简单的浏览图片的功能。 先贴出程序运行截图如下: 除了Gallery可以拖拉切换图片,我在...
摘要:PHP源码,插件模块,Wordpress,幻灯片插件,画廊 Nextgen Gallery Wrodpress图片画廊插件,有多种形式的使用方法,截图只是其中之一,Wordpress官方奉献。
该商店是具有厨房用品的主管电子商店之一,提供与厨房中使用的电气器材相关的许多产品,如食品制剂。商店购物特色 运往王国的所有地区:连接和发货到沙特阿拉伯。 手机补丁上的商店技术支持920009016从上午8点到下午...
重要源码,欢迎下载
问题陈述:零饥饿详细说明: “接近十亿人,世界人口的八分之一仍然在饥饿中。” 世界给我们留下的不仅仅是问题,它也有解决每个现有问题的方法。 所以这里我们有了上面语句的解决方案。 印度 80% 的人直接从线下...
重要源码,欢迎下载