android 查找SDCARD中图片,在listview显示,并且点击在新页面显示图片
源代码在这。就是不知道怎么在点击之后显示图片。求各位大大帮忙。。packagekr.ac.kmu.android.image;importjava.io.File;imp...
源代码在这。就是不知道怎么在点击之后显示图片。求各位大大帮忙。。
package kr.ac.kmu.android.image;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
public class ImagetestActivity extends Activity {
//view
TextView tView ;
ListView i ;
Button btn ;
//data
private ArrayList<File> list ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tView = (TextView)findViewById(R.id.textview1);
//btn = (Button) findViewById(R.id.go);
tView = new TextView(this);
tView.setText("get all files in /sdcard/ME");
//init data
i = (ListView) findViewById(R.id.music_list);
list = new ArrayList<File>();
getAllFiles(new File("/sdcard/ME"));
SimpleAdapter ladapter = new SimpleAdapter(this,getMapData(list),R.layout.relative, new String[]{"ItemText","ItemTitle"},new int[]{R.id.ItemTitle,R.id.ItemText});
i.setAdapter(ladapter);
TextView empty = new TextView(this);
empty.setText("empty!");
i.setEmptyView(empty);
i.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
这里不会写。。。
}
});
}
private ArrayList<Map<String, Object>> getMapData(ArrayList<File> list){
ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
HashMap<String,Object> item;
int i = 0 ;
for(i=0;i<list.size();i++){
item = new HashMap<String,Object>();
String path = list.get(i).toString();
String name = path.substring(path.lastIndexOf("/")+1,path.length());
item.put("ItemText",name);
item.put("ItemTitle", path);
data.add(item);
}
return data;
}
private void getAllFiles(File root){
File files[] = root.listFiles();
if(files != null)
for(File f:files){
if(f.isDirectory()){
getAllFiles(f);
}
else{
String name = f.getName();
if (name.endsWith(".jpg")) {
this.list.add(f);
}
}
}
}
} 展开
package kr.ac.kmu.android.image;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
public class ImagetestActivity extends Activity {
//view
TextView tView ;
ListView i ;
Button btn ;
//data
private ArrayList<File> list ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tView = (TextView)findViewById(R.id.textview1);
//btn = (Button) findViewById(R.id.go);
tView = new TextView(this);
tView.setText("get all files in /sdcard/ME");
//init data
i = (ListView) findViewById(R.id.music_list);
list = new ArrayList<File>();
getAllFiles(new File("/sdcard/ME"));
SimpleAdapter ladapter = new SimpleAdapter(this,getMapData(list),R.layout.relative, new String[]{"ItemText","ItemTitle"},new int[]{R.id.ItemTitle,R.id.ItemText});
i.setAdapter(ladapter);
TextView empty = new TextView(this);
empty.setText("empty!");
i.setEmptyView(empty);
i.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
这里不会写。。。
}
});
}
private ArrayList<Map<String, Object>> getMapData(ArrayList<File> list){
ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
HashMap<String,Object> item;
int i = 0 ;
for(i=0;i<list.size();i++){
item = new HashMap<String,Object>();
String path = list.get(i).toString();
String name = path.substring(path.lastIndexOf("/")+1,path.length());
item.put("ItemText",name);
item.put("ItemTitle", path);
data.add(item);
}
return data;
}
private void getAllFiles(File root){
File files[] = root.listFiles();
if(files != null)
for(File f:files){
if(f.isDirectory()){
getAllFiles(f);
}
else{
String name = f.getName();
if (name.endsWith(".jpg")) {
this.list.add(f);
}
}
}
}
} 展开
3个回答
展开全部
1. 遍历图片很费时,图片多了你这个程序木法用,需要把遍历放到单独的线程,然后可以通过Handler等机制来通知UI动态更新显示。
2. 你想点击到新页面显示图片,就自己再写个Activity,点击的时候通过Intent把图片路径传过去,那边获取到显示出来就可以了。还可以用个static的列表保存好路径,那只需要传个点击的index到新页面,在新页面还可以进行图片的切换。
3. 再高级点:如果list中要显示的图片缩略图,decode也要放单独线程,而且最好用软引用或者有一定的释放机制,不然很容易outofmemory
2. 你想点击到新页面显示图片,就自己再写个Activity,点击的时候通过Intent把图片路径传过去,那边获取到显示出来就可以了。还可以用个static的列表保存好路径,那只需要传个点击的index到新页面,在新页面还可以进行图片的切换。
3. 再高级点:如果list中要显示的图片缩略图,decode也要放单独线程,而且最好用软引用或者有一定的释放机制,不然很容易outofmemory
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在一个imageview中显示不就行了,你看看bitmap的构造方法,有一个就是用路径来构造位图的,然后附给imageview就OK了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Intent innerIntent = new Intent(Intent.ACTION_GET_CONTENT); //"android.intent.action.GET_CONTENT"
innerIntent.setType(contentType); //查看类型 String IMAGE_UNSPECIFIED = "image/*";
Intent wrapperIntent = Intent.createChooser(innerIntent, null);
((Activity) context).startActivityForResult(wrapperIntent, requestCode);
innerIntent.setType(contentType); //查看类型 String IMAGE_UNSPECIFIED = "image/*";
Intent wrapperIntent = Intent.createChooser(innerIntent, null);
((Activity) context).startActivityForResult(wrapperIntent, requestCode);
更多追问追答
追问
有错误。。。
追答
strDirPath为你的图片路径
Intent intent = new Intent(Intent.ACTION_PICK, Uri.fromFile(new File(strDirPath)));
intent.setType("image/*");
startActivity(intent);
试试
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询