【问题标题】:Display images programmatically in Android在 Android 中以编程方式显示图像
【发布时间】:2015-11-16 13:36:34
【问题描述】:

我正在尝试编写这样的代码:我有一个字符串,如果字符串是“堆栈”,我想打印 s.gif、t.gif、a.gif、c.gif 和 k.gif。 这是我写的代码:

    String myString = "stack";
    for(int i = 0; i < myString.length(); i++)
    {
    String source= null;
if(myString .charAt(i) == 'a')
{
    source = "R.drawable.folder.a.gif";
}
 else if (myString .charAt(i) == 'b')
{
    source = "R.drawable.folder.b.gif";
}
    ...//it goes until z
            LinearLayout linearLayout= new LinearLayout(this);
            linearLayout.setOrientation(LinearLayout.VERTICAL);
            linearLayout.setLayoutParams(new AbsListView.LayoutParams(
                    AbsListView.LayoutParams.MATCH_PARENT,
                    AbsListView.LayoutParams.MATCH_PARENT));

            ImageView imageView = new ImageView(this);
            imageView.setImageResource();// I don't know what to write here
            imageView.setLayoutParams(new AbsListView.LayoutParams(
                    AbsListView.LayoutParams.MATCH_PARENT,
                    AbsListView.LayoutParams.WRAP_CONTENT));
            linearLayout.addView(imageView);
            setContentView(linearLayout);

}

我要做的是设置源字符串并将其提供给 setImageResource(),但我失败了。你能告诉我如何修复这个代码吗?谢谢。

【问题讨论】:

  • 如果你知道资源的路径(R.drawable 部分)为什么不直接设置一个int 引用它呢?你为什么要硬编码一个字符串呢?
  • @TomG 你能举个例子解释一下吗?谢谢。
  • String source = null 更改为 int source = -1 并在 if/else 块中设置 source = R.drawable.a。然后像往常一样将source 传递给ImageView
  • 旁注,如果您有文件res/drawable/folder/a.gif:子文件夹are not supported for android resources。您的图像可能根本不包含在应用的资源R 中。

标签: android


【解决方案1】:

首先,Android 有基于 int 的资源指针,所以你的source 变量必须是int

然后,只需像这样分配它:

source = R.drawable.a

把你所有的图片放到res/drawable目录下。

但是,我不确定您是否能够在没有库的情况下使用这样的 gif。试试看,如果不起作用,请使用 .pngs。

【讨论】:

  • 一个问题:所有图像都相互打印,如何解决?
  • 您是否为每个字母添加了一个新的 ImageView?你应该:-)
【解决方案2】:

source 更改为 int 而不是 String

int source;

那就用这个

imageView.setImageDrawable(getResources().getDrawable(source))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多