簡單實現(xiàn)Android滾動公告欄
本文實現(xiàn)的效果,是一個滾動的公告欄,是這樣的:

可以看到這個公告欄一方面是滾動,另外一方面是可點擊。
實現(xiàn)的思路:
1.textView放在ViewFlipper中實現(xiàn)滑動效果(可設置左右、或者上下滾動),很明顯這應該是自定義view;
2.利用textView的點擊事件即可實現(xiàn)點擊;
OK,先看看自定義view的代碼:
public class MarqueeTextView extends LinearLayout {
private Context mContext;
private ViewFlipper viewFlipper;
private View marqueeTextView;
private String[] textArrays;
private MarqueeTextViewClickListener marqueeTextViewClickListener;
public MarqueeTextView(Context context) {
super(context);
mContext = context;
initBasicView();
}
public MarqueeTextView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
initBasicView();
}
public void setTextArraysAndClickListener(String[] textArrays, MarqueeTextViewClickListener marqueeTextViewClickListener) {//1.設置數(shù)據(jù)源;2.設置監(jiān)聽回調(diào)(將textView點擊事件傳遞到目標界面進行操作)
this.textArrays = textArrays;
this.marqueeTextViewClickListener = marqueeTextViewClickListener;
initMarqueeTextView(textArrays, marqueeTextViewClickListener);
}
public void initBasicView() {//加載布局,初始化ViewFlipper組件及效果
marqueeTextView = LayoutInflater.from(mContext).inflate(R.layout.marquee_textview_layout, null);
LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
addView(marqueeTextView, layoutParams);
viewFlipper = (ViewFlipper) marqueeTextView.findViewById(R.id.viewFlipper);
viewFlipper.setInAnimation(AnimationUtils.loadAnimation(mContext, R.anim.slide_in_bottom));//設置上下的動畫效果(自定義動畫,所以改左右也很簡單)
viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(mContext, R.anim.slide_out_top));
viewFlipper.startFlipping();
}
public void initMarqueeTextView(String[] textArrays, MarqueeTextViewClickListener marqueeTextViewClickListener) {
if (textArrays.length == 0) {
return;
}
int i = 0;
viewFlipper.removeAllViews();
while (i < textArrays.length) {
TextView textView = new TextView(mContext);
textView.setText(textArrays[i]);
textView.setOnClickListener(marqueeTextViewClickListener);
LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
viewFlipper.addView(textView, lp);
i++;
}
}
public void releaseResources() {
if (marqueeTextView != null) {
if (viewFlipper != null) {
viewFlipper.stopFlipping();
viewFlipper.removeAllViews();
viewFlipper = null;
}
marqueeTextView = null;
}
}
}
然后,主Activity異常簡單(還是封裝得好):
public class MainActivity extends AppCompatActivity {
private MarqueeTextView marqueeTv;
private String [] textArrays = new String[]{"this is content No.1","this is content No.2","this is content No.3"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
marqueeTv = (MarqueeTextView) findViewById(R.id.marqueeTv);
marqueeTv.setTextArraysAndClickListener(textArrays, new MarqueeTextViewClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MainActivity.this,AnotherActivity.class));
}
});
}
@Override
protected void onDestroy() {
marqueeTv.releaseResources();
super.onDestroy();
}
}
Git地址>>https://github.com/ganshenml/MarqueeTextViewApp
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- android開發(fā)之橫向滾動/豎向滾動的ListView(固定列頭)
- android實現(xiàn)上下滾動的TextView
- android TextView不用ScrollViewe也可以滾動的方法
- Android中實現(xiàn)多行、水平滾動的分頁的Gridview實例源碼
- android 實現(xiàn)ScrollView自動滾動的實例代碼
- android開發(fā)教程之文本框加滾動條scrollview
- android ListView自動滾動方法
- Android GridView實現(xiàn)滾動到指定位置的方法
- Android實現(xiàn)字幕滾動的方法
- android listview 水平滾動和垂直滾動的小例子
相關文章
android MediaRecorder實現(xiàn)錄屏時帶錄音功能
這篇文章主要介紹了android MediaRecorder錄屏時帶錄音功能實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
Android實現(xiàn)單頁面浮層可拖動view的示例代碼
本篇文章主要介紹了Android實現(xiàn)單頁面浮層可拖動view的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10
為Android系統(tǒng)添加config.xml 新配置的設置
這篇文章主要介紹了為Android系統(tǒng)添加config.xml 新配置的設置,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
導入takephoto庫編譯失敗與glide庫沖突應排除依賴
今天小編就為大家分享一篇關于導入takephoto庫編譯失敗與glide庫沖突應排除依賴的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
Android 根據(jù)手勢頂部View自動展示與隱藏效果
這篇文章主要介紹了Android 根據(jù)手勢頂部View自動展示與隱藏效果,本文給大家介紹非常詳細包括實現(xiàn)原理和實例代碼,需要的朋友參考下吧2017-08-08

