2013-03-03 36 views
0

我有一个简单的问题,并且搜索了四周,但没有运气到目前为止。 (Soundboard类型的应用程序 - 目前只有一个按钮)ImageButton - 从图库中获取图像 - 将其设置为图像按钮 - (如何让按钮内的图像为“粘贴”?)

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

现在我的问题是让选定的图像“粘”到按钮。如果我点击后退按钮返回到底部条上的主页,或点击操作栏上的后退按钮(从音板页面)---然后返回音板---之前选择的图像被设置为imagebutton不存在了(似乎图像按钮被重置或重新初始化)。 有没有一种方法可以让选定的图像保持不变,并且如果我转到其他页面或退出时不清除/清除?不知道这将如何处理

包括是代码片段的代码,用于设置所选图像从图库到图像按钮并执行某种缩放。我无法发布图片......但我希望你能想象......非常简单。

谢谢!

PS:最终目标是在原始文件夹中使用soundpool和一个小音频片段,并将其链接到上面的imagebutton - 音频输出。

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

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

     imagebutton.setImageBitmap(bitmaporg); 
+0

你想让图片在每次打开应用程序时使用,或者只是应用程序打开的时候? – JRowan 2013-03-03 05:10:42

+0

我想拥有它,所以每当我打开应用程序时它都在那里。另外,如果我想改变图像,我可以再次点击“addimage”按钮,它会覆盖或替换旧图像。有点像“动态”设置基于用户的图像...谢谢! – Only1Swami 2013-03-03 05:13:15

+0

将路径保存到文本文件,然后每当该活动打开时加载路径,然后检查路径是否为null将图像加载到imagebutton – JRowan 2013-03-03 05:15:37

回答

0

您想要在本地保存调整大小的按钮图像,以便稍后使用。即使在关闭并重新开始之后。

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

你想要的是什么时候初始化活动(活动的构造函数)检查是否有图像保存(你只会保存),如果它在那里应用图像。看到这个SO的问题,它有一个漂亮的小漂亮的答案。 (您已经知道如何从给定路径获取数据)。

否则,如果您希望图片只在运行之间持续存在,您可能希望将图片源保存为某个全局变量,然后您可以通过该意图将图片源传递给新的活动,或者直接在新活动中将其用作它已经是全球变量。

对于全局变量,你可能想看看这些所谓的问题:

Android global variableAndroid: How to declare global variables?

0

你得到的ImagePath试试这个,跟你更换包名称实际的包名之后:

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(); 
      } 

然后在你的onCreate的活动与imageview试试这个:

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(); 
     } 
+0

我的坏我有图片路径仍然在while循环decodefile()我编辑并把inputString – JRowan 2013-03-03 05:51:31