0
我發現線程在人們遇到麻煩無效,因爲他們不在UI線程,調用睡眠等,但這並不適用於我。來自onContextItemSelected的代碼,在UI上運行,對不對?Android invalidate not working
case CUT_ID:
if(ldb.hasRights(meta.vpath)){
RelativeLayout importBar = (RelativeLayout)findViewById(R.id.import_bar);
RelativeLayout editBar = (RelativeLayout)findViewById(R.id.edit_bar);
importBar.setVisibility(View.GONE);
editBar.setVisibility(View.VISIBLE);
clipboardVPath = meta.vpath;
ImageView thumbView = (ImageView) info.targetView.findViewById(R.id.thumbview);
thumbView.setImageResource(R.drawable.cut);
gridView.invalidate();
thumbView.setImageResource(R.drawable.cut);具有用剪刀符號替換gridview中的項目所需的效果。當我選擇切割另一個項目時出現問題。現在它們都有可剪裁的部分,而我只允許剪裁一件物品。這段代碼在getView在我的自定義ThumnbnailAdapter應保證我選擇的第一削減的觀點應該從陣列thumbBitmaps恢復到一個位圖:
if (thumbBitmaps.size() > position) {
if(meta.vpath.equals(clipboardVPath)){
holder.img.setImageResource(R.drawable.cut);
}else{
holder.img.setImageBitmap(thumbBitmaps.get(position));
}
}
請告訴我錯在這裏?
我看到你已經找到了你的答案,但只是指出你關於在非UI線程上失效的問題:有一個方法叫做postInvalidate(),你可以從非UI線程調用它,這將正確地使其失效爲你。 – Guardanis 2012-07-09 21:57:35