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;
}
}
});
相關文章
- 移動端點透事件--阻止滾動事件事件
- 直播app原始碼開源,Android 滾動的公告欄APP原始碼Android
- android recyclerview 上下滑動導致點選事件和資料錯亂問題解決AndroidView事件
- 滑鼠滑輪上下滾動設定方法_怎樣設定滑鼠上下滾動
- 手機直播原始碼,文字上下滾動切換 用於公告訊息提示原始碼
- 監聽滾動,上下翻頁
- 解決Android7.0以上 notification系統自動摺疊點選點選事件無法監聽問題Android事件
- jQuery滑動方式上下左右滾動效果jQuery
- vue 數字上下滾動抽獎Vue
- JQuery4:滑鼠事件和滾動事件jQuery事件
- 直播平臺製作,禁止頁面滾動 / 滾動事件穿透事件穿透
- Android開源音樂播放器之自動滾動歌詞Android播放器
- 一個有上下滾動效果的TextViewTextView
- table上下對齊滾動條設定
- JavaScript滑鼠中鍵滾動事件JavaScript事件
- 直播系統原始碼,點選滾動的輪播圖自動跳轉到相應頁原始碼
- javascript對點選事件和拖動事件的區分JavaScript事件
- 1.21 JQuery4:滑鼠事件與滾動事件jQuery事件
- 選單元素溢位時,自動滾動到可視區域
- 頁面圖片自動滾動
- angular 監聽 Windows 滾動事件 實現頁面滾動載入AngularWindows事件
- 短視訊程式開發,RecyclerView自帶的滾動條View
- 單行新聞公告間歇垂直無縫滾動
- 報表中怎樣實現滾動的公告效果
- vue 監聽頁面滾動事件Vue事件
- RapidClick for Mac,滑鼠自動點選工具APIMac
- Android 點選波紋擴散動畫Android動畫
- 成品直播原始碼推薦,uniapp多行滾動通知原始碼APP
- js實現圖片上下滾動background-positionJS
- 筆記本win10系統瀏覽網頁時滑鼠自動上下滾動如何解決筆記Win10網頁
- Android 設定TextView滑動滾動條和滑動效果AndroidTextView
- 小程式:無限自動滾動的Gallery
- 直播軟體開發,自動滾動banner
- 直播帶貨原始碼,vue中點選按鈕平滑滾動到頁面某個div位置原始碼Vue
- 下拉選單框和滾動條
- chrome,firfox,IE實現隱藏滾動條但是可以正常滾動(瀏覽器自帶隱藏屬性實現)Chrome瀏覽器
- 用Kotlin實現Android點選事件的方法KotlinAndroid事件
- 點陣的動畫顯示之上下移動動畫