gpt4 book ai didi

android - 带文件夹过滤器的图库

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:29 25 4
gpt4 key购买 nike

我正在使用以下代码在我的应用程序中打开一个图库

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, FIND_RESULT);

是否可以将图像列表限制为仅显示相机拍摄的图像?在我的 2.1 系统上查看图库,图像被分组,因此必须有一个参数来定义它属于哪个文件夹。

检查 MediaStore.Images.ImageColumns我没有找到任何可以定义此类内容的专栏。

我会不会错了?因为如果我可以创建一个查询来按文件夹过滤并创建我自己的画廊 View ,那么我的问题就会得到解决。

最佳答案

您只需要在您的 Activity 中实现 MediaScannerConnectionClient,然后您必须在此处提供该文件夹名称中文件之一的确切路径作为 SCAN_PATH,它将扫描该文件夹中包含的所有文件并在内置文件中打开它在画廊。因此,只需提供文件夹的名称,您将获得其中的所有文件,包括视频。如果你只想打开图像更改 FILE_TYPE="image/*"

public class SlideShow extends Activity implements MediaScannerConnectionClient {

public String[] allFiles;
private String SCAN_PATH ;
private static final String FILE_TYPE = "*/*";
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/yourfoldername/");
allFiles = folder.list();

SCAN_PATH=Environment.getExternalStorageDirectory().toString()+"/yourfoldername/"+allFiles[0];

Button scanBtn = (Button) findViewById(R.id.scanBtn);
scanBtn.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
startScan();
}
});
}

private void startScan()
{
if(conn!=null)
{
conn.disconnect();
}

conn = new MediaScannerConnection(this, this);
conn.connect();
}


public void onMediaScannerConnected()
{
conn.scanFile(SCAN_PATH, FILE_TYPE);
}


public void onScanCompleted(String path, Uri uri)
{
try
{
if (uri != null)
{
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(uri);
startActivity(intent);
}
}
finally
{
conn.disconnect();
conn = null;
}
}
}

关于android - 带文件夹过滤器的图库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4019534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com