好吧,這聽起來可能很愚蠢,但我一直在敲打我的頭對着鍵盤一段時間,現在試圖找出爲什麼這不會刷新。基礎知識:我有一個小樣本應用程序,我正在測試以查看是否可以將某個圖像圍繞某個點的X度數旋轉,並一次顯示一個度數以製作平滑的動畫。所以我有一個很棒的示例,我發現它非常適合滑動條,基本上將圖像旋轉設置爲滑動條上的一個點,太棒了!但是......當我嘗試創建一個隨機數循環,並使用我的變量更新圖像沿途的每一個程度......它什麼也沒有......我得到的是最後更新的圖像...但是當我拖動我的手指在他的滑動條上時,圖形隨着我旋轉而立即更新......我無法弄清楚我在這裏做錯了什麼......這裏是滑塊的代碼...我不知道沒有我的作品創建隨機數並繪製它,但基本上我做了它後面的一個按鈕點擊view.invalidate()不工作,重繪圖像
本質上,如果你看看這一塊,我做了同樣的按鈕後面,但它不做「實時」 。我叫view.invalidate()和view.postinvalidate(),試圖迫使它,但沒有去...
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
curRotate = (float)progress;
drawMatrix();
}
private void drawMatrix(){
Matrix matrix = new Matrix();
matrix.postScale(curScale, curScale);
matrix.postRotate(curRotate);
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bmpWidth, bmpHeight, matrix, true);
myImageView.setImageBitmap(resizedBitmap);
}
謝謝!我將檢查線程......即使在我習慣於c#的世界中也是一件常見的事情,但是在那個世界中,我仍然可以導致主UI線程的強制重繪(它不是最優的),但是在小尺度下它仍然可以工作就好了......嗯,看看我是否可以脫離一個線程,然後通過線程安全活動更新UI。謝謝! – noobS41bot 2011-04-04 16:22:55
或者,您可以在UI線程中使用更容易創建和使用的「Runnable」,並且還可以讓它更新您的UI。 – RivieraKid 2011-04-04 20:02:17
真棒謝謝你。我將嘗試脫掉一個可以完成工作並自行結束的線程。我會看看我今晚能否做到這一點。希望它能殺死自己大聲笑。 – noobS41bot 2011-04-04 20:52:51