編輯:關於Android編程
大體上想實現一個思路:
對一個view 的內容進行不停地變化, 通過按鈕停止這種變化,以達到隨機選擇的目的.
開發過程中 使用textview 模擬, 建立線程
mythread = new Thread()
{
@Override
public void run()
{
while(isrun)
{
改變textview
}
}
}
結果遭遇報錯 Only the original thread that created a view hierarchy can touch its views
通過在網上查閱大量資料, 得知android 的view 和相關控件不是線程安全的,不可以在線程中直接改變.
這種情況下 需要使用handle .
通過Handler更新UI實例:
步驟:
1、創建Handler對象(此處創建於主線程中便於更新UI)。
2、構建Runnable對象,在Runnable中更新界面。
3、在子線程的run方法中向UI線程post,runnable對象來更新UI。
在下面的代碼中, 通過變量ab ,不斷更新textview中的內容 ,通過按鈕可以結束線程.
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.SurfaceHolder;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private Button button;
private TextView textview;
private final int SPLASH_DISPLAY_LENGHT = 1;
private static int flag = 0;
private static int count=0;
private int ab=1;
private boolean isrun = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.button1);
textview = (TextView)findViewById(R.id.textView1);
final Handler handler= new Handler();
final Runnable runnable = new Runnable() {
public void run() {
textview.setText(Integer.toString(ab));
}
};
final Thread t = new Thread(){
//public boolean isrun=true;
@Override
public void run() {
while(isrun)
{
handler.post(runnable); //加入到消息隊列 這樣沒有啟動新的線程,雖然沒有報異常。但仍然阻塞ProgressDialog的顯示
ab++;
try {
sleep(1000); //直接調用
} catch (InterruptedException e) {
return;
}
}
}
};
t.start();
button.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View view)
{
isrun=false;
}
});
}
}
Android apk 混淆代碼(遇到的各種坑和解決方案)
以前做的手機項目,並沒有要求混淆,一直沒時間去看,等到做了平板,有混淆的需求才要硬著頭皮去看混淆到底是如何工作的,以及如何混淆驗證成功,參考一篇博客,講的非常詳細,而且每
Android自定義View實現仿1號店垂直滾動廣告條代碼
效果圖展示,圖片有點卡,耐心看會,原程序是很流暢的實現步驟: 聲明變量 初始化畫筆、文本大小和坐標 onMeasure()適配wrap_content的寬高 on
Android 自定義一款炫酷的加載控件
概述在設計應用的時候,我們應該熱愛極簡主義,簡單就是好的,對於很多用戶來說,復雜的東西並不受歡迎。我要實現的是根據不同的情況去顯示不同的加載效果,隨用隨調,效果是借鑒於某
TabLayout 遇到那些坑
我在和ViewPager一起使用時,遇到了一些坑,按照官方給出的示例,我寫出來的代碼是這樣的布局代碼 java代碼public class MainActi