2014-01-17 139 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