【问题标题】:can we pass a directory path to Drawable.createfrompath instead of a file path?我们可以将目录路径传递给 Drawable.createfrompath 而不是文件路径吗?
【发布时间】:2013-07-16 10:07:29
【问题描述】:

我们可以将目录路径传递给 Drawable.createfrompath 而不是文件路径吗?

例如:

Drawable d = Drawable.createFromPath("aq/img/sample.png");  

将路径转换为可绘制的“d”。我想将文件夹路径传递给同一个函数,比如“/aq/img/”,我想将该文件夹中存在的所有图像转换为可绘制对象。这可以做到吗?如何?

编辑: 这样做是为了在我的 imageView 中显示单个图像。

 ImageView imgView01 = (ImageView) findViewById(R.id.imageView1);  
            File dir = new File("/sdcard/WallpapersHD/");
             File file[]=dir.listFiles();

             for (int i=0;i<file.length;i++) {


                 Drawable d = (Drawable) Drawable.createFromPath(file[i].toString());


                 imgView01.setImageDrawable(d);

现在我如何设置 5 秒的延迟,然后在图像视图中设置不同的图像?

【问题讨论】:

  • 你希望它如何将所有图像组合成一个 Drawable?一个在另一个之上,还是平铺,等等?老实说,我不希望这是一个框架/操作系统支持的操作,部分原因是你可以想象的变化数量。我希望你只需要在代码中明确地做到这一点。
  • 在将每个路径转换为可绘制对象后,我想使用“imgView01.setImageDrawable(d);”将其设置为图像视图然后将相同的图像视图和相同的可绘制对象重用到文件夹中的其他图像。基本上我想一个接一个地显示文件夹中的所有图像。
  • 啊,一个接一个 - 这与传入一个文件夹并一次性获得 one Drawable 不同,是吗?为什么不为每个文件创建一个新的Drawable
  • 是的,这就是我想问的。很抱歉不是很清楚。要为每个文件创建一个新的 Drawable,我如何获取该文件夹中每个图像的路径?
  • 所以你的问题真的是“我如何在目录中找到文件?” - 在这种情况下,File.listFiles 可能就是你想要的。

标签: android


【解决方案1】:

执行此操作后开始计数 5 秒

long time = SystemClock.elapsedRealTime();

把它放到一个循环中:

if(SystemClock.elapsedRealtime() > time + 5000){

        ImageView img01 = (ImageView) findViewById(R.id.yourNewImg);
        img01.setImageDrawable(d);

}

“d”是你的 Drawable。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 2021-08-27
    • 2016-12-23
    相关资源
    最近更新 更多