Android線程中設(shè)置控件的值提示報錯的解決方法
本文實例講述了Android線程中設(shè)置控件的值提示報錯的解決方法。分享給大家供大家參考,具體如下:
在Android線程中設(shè)置控件的值一般會與Handler聯(lián)合使用,如下:
package com.yarin.android.Examples_04_15; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.ImageView; import android.widget.TextView; public class Activity01 extends Activity { //聲明ImageView對象 ImageView imageview; TextView textview; //ImageView的alpha值, int image_alpha = 255; Handler mHandler = new Handler(); //控件線程 boolean isrung = false; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); isrung = true; //獲得ImageView的對象 imageview = (ImageView) this.findViewById(R.id.ImageView01); textview = (TextView) this.findViewById(R.id.TextView01); //設(shè)置imageview的圖片資源。同樣可以再xml布局中像下面這樣寫 //android:src="@drawable/logo" imageview.setImageResource(R.drawable.logo); //設(shè)置imageview的Alpha值 imageview.setAlpha(image_alpha); //開啟一個線程來讓Alpha值遞減 new Thread(new Runnable() { public void run() { while (isrung) { try { Thread.sleep(200); //更新Alpha值 updateAlpha(); //如果使用下面注釋的代碼來直接設(shè)置imageview的透明度、textview的值會報錯,因為線程中不能對控件進(jìn)行設(shè)置操作,需要使用一個Handler來進(jìn)行對相關(guān)值的設(shè)置 // if (image_alpha - 7 >= 0) // { // image_alpha -= 7; // } // else // { // image_alpha = 0; // isrung = false; // } // imageview.setAlpha(image_alpha); // textview.setText("現(xiàn)在alpha值是:"+Integer.toString(image_alpha)); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); //接受消息之后更新imageview視圖 mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); imageview.setAlpha(image_alpha); textview.setText("現(xiàn)在alpha值是:"+Integer.toString(image_alpha)); //更新 imageview.invalidate(); } }; } public void updateAlpha() { if (image_alpha - 7 >= 0) { image_alpha -= 7; } else { image_alpha = 0; isrung = false; } //發(fā)送需要更新imageview視圖的消息 mHandler.sendMessage(mHandler.obtainMessage()); } }
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android線程與消息機(jī)制用法總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android開發(fā)入門與進(jìn)階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- Android啟動模擬器報錯解決方法
- android導(dǎo)入第三方j(luò)ar包報錯 如何正確導(dǎo)入jar包
- android @override 報錯解決方案
- android 下載時文件名是中文和空格會報錯解決方案
- cocos2d-2.0-x-2.0.3 交叉編譯到android報錯解決
- android4.0混淆XmlPullParser報錯原因分析解決
- Android Studio 報錯failed to create jvm error code -4的解決方法
- android照相、相冊獲取圖片剪裁報錯的解決方法
- Android開發(fā)中Eclipse報錯及對應(yīng)處理方法總結(jié)
- Android程序報錯程序包org.apache.http不存在問題的解決方法
相關(guān)文章
Android編程實現(xiàn)使用webView打開本地html文件的方法
這篇文章主要介紹了Android編程實現(xiàn)使用webView打開本地html文件的方法,結(jié)合實例形式分析了Android中webview布局及打開HTML文件的功能實現(xiàn)技巧,需要的朋友可以參考下2017-02-02Android入門之LinearLayout、AbsoluteLayout的用法實例講解
這篇文章主要介紹了Android入門之LinearLayout、AbsoluteLayout的用法,對于Android初學(xué)者有很好的參考借鑒價值,需要的朋友可以參考下2014-08-08Android實戰(zhàn)教程第二篇之簡單實現(xiàn)兩種進(jìn)度條效果
這篇文章主要為大家詳細(xì)介紹了Android實戰(zhàn)教程第二篇,簡單實現(xiàn)兩種進(jìn)度條效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11Android基于socket實現(xiàn)的簡單C/S聊天通信功能
這篇文章主要介紹了Android基于socket實現(xiàn)的簡單C/S聊天通信功能,結(jié)合實例形式分析了Android使用socket實現(xiàn)客服端與服務(wù)器端數(shù)據(jù)的發(fā)送與接收處理技巧,需要的朋友可以參考下2016-10-10Android 雙擊Back鍵退出應(yīng)用的實現(xiàn)方法
這篇文章主要介紹了Android 雙擊Back鍵退出應(yīng)用的實現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10Android基于開源項目xutils3實現(xiàn)下載
這篇文章主要介紹了Android基于開源項目xutils3實現(xiàn)下載,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11