Gallery的使用之一
从一个指定的目录文件下取图片显示可以左右滑动
例子显示的是从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" />
相关推荐
huha 2020-10-16
xfcyhades 2020-11-20
sgafdsg 2020-11-04
Michael 2020-11-03
fengyeezju 2020-10-14
ziyexiaoxiao 2020-10-14
业余架构师 2020-10-09
OuNuo0 2020-09-29
moses 2020-09-22
Angelia 2020-09-11
qinxu 2020-09-10
刘炳昭 2020-09-10
Nostalgiachild 2020-09-07
Nostalgiachild 2020-08-17
leavesC 2020-08-14
一青年 2020-08-13
AndroidAiStudy 2020-08-07
ydc0 2020-07-30
绿豆饼 2020-07-28