android怎么调用系统自带的图库打开指定目录的相册

fengyunshen 2011-12-03 08:55:26
怎么使用android自带的图片浏览器打开指定目录文件中的所有图片,或者调用指定目录的相册,可以实现图片的切换?
...全文
40558 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
OUYANGWUCHEN 2014-06-03
  • 打赏
  • 举报
回复
@lixiaodaoaaa 打开指定路径的相册只能使用一次,不退出应用再点击扫描按钮,相册闪退,什么情况
心鑫 2014-04-24
  • 打赏
  • 举报
回复
18楼,解决问题了
_情兽_ 2014-03-19
  • 打赏
  • 举报
回复
多谢chen515272204、zhangjingtao6100和yuxlong2010, 我现在使用系统自带的图片浏览器应用程序Gallery可以打开一张指定的图片, Java code ? 1 2 3 4 5 //使用Intent Intent intent = new Intent(Intent.ACTION_VIEW); //Uri mUri = Uri.parse("file://" + picFile.getPath());Android3.0以后最好不要通过该方法,存在一些小Bug intent.setDataAndType(Uri.fromFile(picFile), "image/*"); startActivity(intent); 我打算实现浏览指定文件夹中的所有图片,并实现翻页的效果,类似于widget中的Gallery和ImageSwitch相结合的效果,但是由于图片本身较大,直接用Widge中的图片控件打不开,但通过BitmapFactory.Options的inJustDecodeBounds和inSampleSize可以压缩打开,但是在通过手势放大的时候,图片本身就不是很清晰。 所以想借助于系统自带的图片浏览器实现该功能。 我是想把该功能直接嵌入到程序中,不通过选择图片位置的方式打开,yuxlong2010提供的是通过让用户选择图片路径而打开一张图片。 你好,这个问题解决了吗?我现在也遇到这个问题了,跟你的一样。
@_乌龙茶_@ 2014-02-26
  • 打赏
  • 举报
回复
Intent mIntent = sContext .getPackageManager() .getLaunchIntentForPackage(packName); mIntent.addCategory(Intent.CATEGORY_LAUNCHER); MainService.this.startActivity(mIntent); 没问题可以打开图片浏览器
qinglfxy 2014-02-20
  • 打赏
  • 举报
回复
http://stackoverflow.com/questions/10749351/how-to-open-one-particular-folder-from-gallery-in-android 这个我测了也不可以。onScanCompleted返回的Uri的路径跟scanFile中的路径不是一样的。
spysoos 2014-01-17
  • 打赏
  • 举报
回复
14楼 你这是打开第一张图 并没能达到楼主要的要求
wangACE 2014-01-17
  • 打赏
  • 举报
回复
请问如果知道照片名称,如何预览这一张照片呢?我有一个TextView 在这个TextView上面显示了一张照片的名称, 我想单击这个TextView 实现对这张照片的预览
echoJiang 2014-01-13
  • 打赏
  • 举报
回复
14楼大牛啊,学习了
Wsf2918 2013-09-27
  • 打赏
  • 举报
回复
4.1以后的版本就好像有问题,会提示找不到文件,但是我使用4.0的版本测试的时候,可以正常使用!!1
jsonbor 2013-07-03
  • 打赏
  • 举报
回复
有没有源码啊?
zy梦神 2013-06-20
  • 打赏
  • 举报
回复
在android2.3.6上,调用图库显示图片时,如果在图库当中双击放大图片和翻页,然后返回的时候,偶尔会出现:之前的Activity重新onCreate()。
lbjsuck 2013-04-16
  • 打赏
  • 举报
回复
哇,这个问题我也在寻找呢
beihai1212 2013-04-12
  • 打赏
  • 举报
回复
恩,我也试过,打开指定路径的单张图片是没有问题的,看来根据文件夹目录打开图片的方式是不可行的,最好的办法是研究一下Android系统自带图片浏览器Gallery的源码才行了。多谢各位!我还是研究一下源码吧,如果成功的话,等过一段时间把方法公布出来。
longer262110 2013-04-12
  • 打赏
  • 举报
回复
thanks for sharing
lixiaodaoaaa 2013-04-12
  • 打赏
  • 举报
回复
http://stackoverflow.com/questions/10749351/how-to-open-one-particular-folder-from-gallery-in-android 问题解决啦!!!!嘎嘎,不是 不可能。是 “不,可能!” 测试方法: 请在sdcard 目录下新建文件夹 photo.并将此文件夹 中复制少量图片。
lixiaodaoaaa 2013-04-11
  • 打赏
  • 举报
回复
http://stackoverflow.com/questions/10749351/how-to-open-one-particular-folder-from-gallery-in-android 问题解决啦!!!!嘎嘎,不是 不可能。是 “不,可能!” 测试方法: 请在sdcard 目录下新建文件夹 photo.并将此文件夹 中复制少量图片。
引用

import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaScannerConnection;
import android.media.MediaScannerConnection.MediaScannerConnectionClient;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

/**
欢迎关注我的微博 http://weibo.com/lixiaodaoaaa
 http://t.qq.com/lixiaodaoaaa
*/

public class SDCARD123Activity extends Activity implements MediaScannerConnectionClient{
    public String[] allFiles;
private String SCAN_PATH ;
private static final String FILE_TYPE="image/*";

private MediaScannerConnection conn;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    File folder = new File("/sdcard/Photo/");
    allFiles = folder.list();
 //   uriAllFiles= new Uri[allFiles.length];          
    for(int i=0;i<allFiles.length;i++)
    {
        Log.d("all file path"+i, allFiles[i]+allFiles.length);
    }
  //  Uri uri= Uri.fromFile(new File(Environment.getExternalStorageDirectory().toString()+"/yourfoldername/"+allFiles[0]));


    SCAN_PATH=Environment.getExternalStorageDirectory().toString()+"/Photo/"+allFiles[0];
    System.out.println(" SCAN_PATH  " +SCAN_PATH);

    Log.d("SCAN PATH", "Scan Path " + SCAN_PATH);
    Button scanBtn = (Button)findViewById(R.id.scanBtn);
    scanBtn.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v) {
        startScan();
    }});
    }
    private void startScan()
    {
    Log.d("Connected","success"+conn);
    if(conn!=null)
    {
    conn.disconnect();
    }
    conn = new MediaScannerConnection(this,this);
    conn.connect();
    }
@Override
public void onMediaScannerConnected() {
    Log.d("onMediaScannerConnected","success"+conn);
    conn.scanFile(SCAN_PATH, FILE_TYPE);    
}
@Override
public void onScanCompleted(String path, Uri uri) {
    try {
        Log.d("onScanCompleted",uri + "success"+conn);
        System.out.println("URI " + uri);             
        if (uri != null) 
        {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(uri);
        startActivity(intent);
        }
        } finally 
        {
        conn.disconnect();
        conn = null;
        }
       }
}
lixiaodaoaaa 2013-04-11
  • 打赏
  • 举报
回复
嘎嘎,问题已经解决。这么简单的问题!!
yufengzungzhe 2012-10-19
  • 打赏
  • 举报
回复
楼主的问题解决了没有啊 ??我现在也遇到这样的问题了
ycm52013141 2012-02-03
  • 打赏
  • 举报
回复
8 楼 的方法不错 顶一个
加载更多回复(10)

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧