在Android Studio中与mipmap图像资源交互,使用ImageView小部件显示

时间:2015-12-02 00:17:26

标签: java android imageview png mipmaps

我尝试做一些应该简单的事情,导入png文件,在许多imageview小部件中使用它们(作为背景)。作为我的代码的一部分,我希望看到当单击小部件a时,小部件b将使用小部件a的背景进行更新。

这似乎是我应该能够毫不费力地传递的信息类型,并且那里的所有帮助只是说"导入到Drawable文件夹",但今年早些时候Android工作室停止放入导入的图像资产到drawable文件夹,并开始将它们放入一个mipmap文件夹。我能够将这些图像用作背景,只要我在activity_mail.xml设计视图中定义背景,但我无法与代码中的imageview背景进行交互,因为所有方法都是期望引用类型drawable,但我的图像不会被解释为drawables,因为我无法将它们放入该文件夹中。 我错过了什么?

首先,我创建一个包含单独资源ID的数组,希望我可以在目标imageview中使用它们。 我不确定使用mipmap图像资源填充数组是否正常工作,因为我似乎无法使用任何在我的代码中不可绘制的图像,但它适用于其他地方的音频文件在我的代码中。我已将描述添加到标记字段中,该字段也可用于引用所使用的图像,但我也无法使用该图像。

public class MainActivity extends AppCompatActivity {
    int[] letters = new int[26];

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    int i = 0;

    for (char alphabet = 'a'; alphabet <= 'z'; alphabet++) {
        String ltr = String.valueOf(alphabet);
        ltr = "letter"+ltr;
        letters[i] = this.getResources().getIdentifier(ltr,"mipmap",this.getPackageName());

        i++;

    }

  }
}

触摸图像视图时会调用以下方法。我试图从imageview背景中获取描述,并使用我在mipmap文件夹中的png文件更新另一个imageview的背景,我在(理论上)存储在数组中的引用。

public void onClickLetter(View v) {
    String actualLetter;
    int letternumber;


    String letterclicked = v.getContentDescription().toString();
    letterclicked = letterclicked.replace("letter", "");  //this gives me a number, which I parse to an int below, which allows me to select a resource ID stored in my array, this is working perfectly elsewhere in my code


    System.out.println(letterclicked);

    actualLetter = (v.getTag()).toString();
    System.out.println(actualLetter);

    letternumber = parseInt(letterclicked); //I should be able to use the letters[letternumber] array reference now, but I can't seem to pass it to anything since it's not a drawable file.

如何将引用传递到源imageview小部件中的图像文件(此方法中的View v参数),并使用图像文件作为背景更新第二个imageview小部件,其引用存储在数组中?

是否有一个没有预期可绘制文件的setbackground选项?

如果我应该使用drawable文件夹,请告诉我如何将png文件添加到drawable文件夹。

我的问题只是使用imageview而不是按钮或其他类型的小部件吗?

我的问题是我存储mipmap资源ID的方式(这是android studio自动放置图像资源的地方)吗?我知道mipmap文件仅用于图标,但正如我前面提到的,今年android studio开始将​​所有图像放入mipmap文件夹。

1 个答案:

答案 0 :(得分:0)

这里有一个解决问题的答案。将视图切换到项目,您可以使用drawable文件夹。 Are all images in Android apps considered Icons?