2014-01-17 142 views
0

我有一个文字视图(标题)放在我的图像视图。当我在屏幕上更改可见的文本时,但当我保存该图像时,当我在图库中查看时没有任何图像出现在图像上。TextView没有立即更新

当我使用runOnUiThread时,它仅在更改文本颜色以及更改文本时起作用。

但是,如果我使用自定义视图并在画布上绘制文本,它会正常工作,更改会立即保存在图像上。

这是为什么?背景中究竟发生了什么?我怎样才能让文本视图的变化立即得到更新?

下面是我的代码更新文本视图 (我是通过调用作物()函数裁剪我的图像视图的宽度和高度相对布局)

@Override 
public void onClick(View v) 
{ 
     runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      textView.setText(textPreview.getText().toString()); 
      if(colorSet == 1){ 
       textView.setTextColor(col); 
      } 
     }); 

    crop(); 

    dialog.dismiss(); 

} 

我的作物()函数 - newBitmap是我的其中标题被放在

newBitmap1 = Bitmap.createBitmap(relLay.getDrawingCache(),0,0,newBitmap.getWidth(),newBitmap.getHeight()); 
    SharingFile = CreateTempFile(newBitmap1); 
    shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + SharingFile)) ; 
    setIntent(shareIntent); 
+0

TextView只是一个覆盖在显示图像顶部而不实际更改位图的视图。如果你想改变一个图像,你将不得不在其上绘制并保存。但是,您始终可以在图像上叠加文本视图并截取屏幕截图。 – Srikanth

+0

在这种情况下,我实际上是用我的图像视图宽度和高度裁剪我的相对布局。 – ik024

+0

包含代码中对图像进行更改的部分以及要保存图像的部分。 – Srikanth

回答

0

图像视图您需要调用作物()来后发生在UI线程的文字更新 - 不平行。因此,尝试在文本更新之后将调用包含在run()方法中。

+0

我会给你的信用,因为你让我觉得在正确的方法:) – ik024

+0

正在寻求更精确的ans的用户请参阅下面的链接5.3。示例 - http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html – ik024