Android TextSwitcher通知公告自動上下滾動且帶點選事件
TextSwitcher可實現仿京東通告效果
核心程式碼
private TextSwitcher textSwitcher_tag;
private TextSwitcher textSwitcher_title;
String[] tags = new String[]{"最新", "最火爆", "HOT", "new"};
String[] titles = new String[]{"瑞士維氏軍刀 新品滿200-50", "家居裝潢煥新季,講199減100!", "帶上相機去春遊,尼康低至477", "價格驚呆!電信千兆光纖上市"};
private int curStr=0;
public static final int NEWS_MESSAGE_TEXTVIEW=100;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case NEWS_MESSAGE_TEXTVIEW:
curStr++;
if (curStr == tags.length) {
curStr = 0;
}
textSwitcher_tag.setText(tags[curStr]);
textSwitcher_title.setText(titles[curStr]);
break;
default:
break;
}
}
};
textSwitcher_tag= (TextSwitcher) findViewById(R.id.textSwitcher_tag);
textSwitcher_title= (TextSwitcher) findViewById(R.id.textSwitcher_title);
textSwitcher_title.setFactory(new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
final TextView tv = new TextView(MainActivity.this);
tv.setTextColor(Color.BLACK);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER_VERTICAL;
tv.setLayoutParams(params);
return tv;
}
});
textSwitcher_tag.setFactory(new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
final TextView tv = new TextView(MainActivity.this);
tv.setTextColor(Color.RED);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER_VERTICAL;
tv.setLayoutParams(params);
return tv;
}
});
textSwitcher_tag.setText(tags[0]);
textSwitcher_title.setText(titles[0]);
new Thread(){
@Override
public void run() {
if(tags.length==titles.length){
while (curStr<tags.length){
synchronized (this) {
SystemClock.sleep(4000);//每隔4秒滾動一次
handler.sendEmptyMessage(NEWS_MESSAGE_TEXTVIEW);
}
}
}
}
}.start();
textSwitcher_title.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (curStr%titles.length){
case 0:
Toast.makeText(MainActivity.this,titles[0],Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(MainActivity.this,titles[1],Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(MainActivity.this,titles[2],Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(MainActivity.this,titles[3],Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
});
相關文章
- android 讓 TextView 自帶滾動條AndroidTextView
- 移動端點透事件--阻止滾動事件事件
- Android點選列表後彈出輸入框,所點選項自動滾動到輸入框上方Android
- android recyclerview 上下滑動導致點選事件和資料錯亂問題解決AndroidView事件
- JS模擬滾動條(有demo和原始碼下載,支援拖動 滾輪 點選事件)JS原始碼事件
- 手機直播原始碼,文字上下滾動切換 用於公告訊息提示原始碼
- 直播app原始碼開源,Android 滾動的公告欄APP原始碼Android
- 滑鼠滑輪上下滾動設定方法_怎樣設定滑鼠上下滾動
- 不斷向上滾動的公告欄
- css實現新聞公告上下翻滾效果CSS
- 監聽滾動,上下翻頁
- JavaScript 垂直新聞公告無縫滾動JavaScript
- jQuey網站公告水平滾動程式碼網站
- jQuery滑動方式上下左右滾動效果jQuery
- JS圖片滾動(無縫、平滑、上下左右滾動)效果JS
- vue 數字上下滾動抽獎Vue
- JavaScript 數字上下滾動抽獎JavaScript
- 公告文字水平滾動例項程式碼
- 解決Android7.0以上 notification系統自動摺疊點選點選事件無法監聽問題Android事件
- RecyclerView的滾動事件研究View事件
- 手機網站上下拉動滾動條時卡頓網站
- table上下對齊滾動條設定
- 一個有上下滾動效果的TextViewTextView
- JavaScript垂直新聞公告無縫滾動詳解JavaScript
- JQuery4:滑鼠事件和滾動事件jQuery事件
- 直播系統原始碼,點選滾動的輪播圖自動跳轉到相應頁原始碼
- 頁面圖片自動滾動
- 直播平臺製作,禁止頁面滾動 / 滾動事件穿透事件穿透
- JS仿QQ空間滑鼠停在長圖片時候圖片自動上下滾動效果JS
- JavaScript滑鼠中鍵滾動事件JavaScript事件
- javascript對點選事件和拖動事件的區分JavaScript事件
- 報表中怎樣實現滾動的公告效果
- 單行新聞公告間歇垂直無縫滾動
- 模擬帶有滾動條的select下拉選單
- 帶有視覺滾動差的選單側滑欄視覺
- 側欄懸浮導航選單拖動滾動條可以自動定位效果
- Android中ListView滾動時上下邊界的那一抹色彩AndroidView
- 短視訊程式開發,RecyclerView自帶的滾動條View