0

我有一个简单的问题,已经四处寻找,但到目前为止还没有运气。(音板类型的应用程序 - 到目前为止只有一个按钮)

目前,我单击主屏幕上的“音板”按钮,它会导致我的一键试用音板 - 我在页面顶部有一个“添加图像”按钮。按钮下方是一个空白图像按钮(待填充)。单击“添加图像”后,我将被带到我选择图像的画廊。选择后,图像被设置为imagebutton中的背景(源变成背景)。经过多次试验和错误,我终于解决了缩放问题(如果选择的图像很大,它会在按钮内爆炸)。

现在我的问题是让选定的图像“粘”到按钮上。如果我单击后退按钮返回底部栏上的主页或单击操作栏上的后退按钮(从音板页面)---然后返回音板---之前选择的图像被设置为 imagebutton 不再存在(似乎图像按钮被重置或重新初始化)。如果我转到不同的页面或退出,有没有办法可以让选定的图像粘贴而不擦除/清除?不确定如何处理

包括一个代码片段,用于将所选图像从画廊设置为图像按钮并执行某种缩放。我无法发布图片...但我希望您能想象...非常简单。

谢谢你!

PS:最终的目标是使用 soundpool 和 raw 文件夹中的一个小音频剪辑,并将其链接到上面的图像按钮 - 音频输出。

        ImageButton imagebutton = (ImageButton) findViewById(R.id.imBut);

        Bitmap bitmaporg = BitmapFactory.decodeFile(picturePath);
        bitmaporg = Bitmap.createScaledBitmap(bitmaporg,350,350,true);

        imagebutton.setImageBitmap(bitmaporg);
4

2 回答 2

0

获得图像路径后尝试此操作,将包名替换为您的实际包名:

 try {
                BufferedWriter writer = new BufferedWriter(new FileWriter("/data/data/packagename/" + "filename.txt"));

                writer.write(picturePath);

                writer.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

然后在带有 imageview 的活动的 onCreate 中尝试以下操作:

ImageButton imagebutton = (ImageButton) findViewById(R.id.imBut);
try {
            BufferedReader inputReader = new BufferedReader(new FileReader("/data/data/packagename/"+ "filename.txt"));
            String inputString;
while ((inputString = inputReader.readLine()) != null) {
Bitmap bitmaporg = BitmapFactory.decodeFile(inputString);
    bitmaporg = Bitmap.createScaledBitmap(bitmaporg,350,350,true);

    imagebutton.setImageBitmap(bitmaporg);
}
        } catch (IOException e) {
            e.printStackTrace();
        }
于 2013-03-03T05:42:09.720 回答
0

您可能希望将调整大小的按钮图像保存在本地,以便以后使用。即使在关闭并重新开始之后。

这里发生的是一个新的活动实例(带有按钮)正在初始化,它没有关于应用到其他按钮实例的图像的信息。

您想要的是在初始化活动(活动的构造函数)时检查是否保存了图像(您只会保存),以及是否存在应用图像。看到这个SO question,它有很好的小漂亮答案。(您已经知道如何从给定路径获取数据)。

否则,如果您希望图像仅在运行之间保留,您可能希望将图像源保存为某个全局变量,然后您可以通过意图将图像源传递给新活动,或者直接在新活动中使用它,因为它已经是全局的多变的。

对于全局变量,您可能需要查看这些 SO 问题:

Android全局变量Android:如何声明全局变量?

于 2013-03-03T05:21:16.420 回答