本文实现的效果,是一个滚动的公告栏,是这样的:
可以看到这个公告栏一方面是滚动,另外一方面是可点击。
实现的思路:
1.textView放在ViewFlipper中实现滑动效果(可设置左右、或者上下滚动),很明显这应该是自定义view;
2.利用textView的点击事件即可实现点击;
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.设置数据源;2.设置监听回调(将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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android滚动公告栏
# Android滚动公告
# Android滚动
# android开发之横向滚动/竖向滚动的ListView(固定列头)
# android实现上下滚动的TextView
# android TextView不用ScrollViewe也可以滚动的方法
# Android中实现多行、水平滚动的分页的Gridview实例源码
# android 实现ScrollView自动滚动的实例代码
# android开发教程之文本框加滚动条scrollview
# android ListView自动滚动方法
# Android GridView实现滚动到指定位置的方法
# Android实现字幕滚动的方法
# android listview 水平滚动和垂直滚动的小例子
# 自定义
# 是一个
# 放在
# 是这样
# 也很
# 可以看到
# 很明显
# 回调
# 大家多多
# 装得
# 加载
# 这应
# String
# marqueeTextView
# View
# textArrays
# Context
# private
# mContext
# LinearLayout
相关文章:
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
SQL查询语句优化的实用方法总结
如何登录建站主机?访问步骤全解析
香港服务器WordPress建站指南:SEO优化与高效部署策略
相册网站制作软件,图片上的网址怎么复制?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
建站之星导航菜单设置与功能模块配置全攻略
内网网站制作软件,内网的网站如何发布到外网?
,巨量百应是干嘛的?
建站之星展会模版如何一键下载生成?
如何在阿里云虚拟主机上快速搭建个人网站?
如何用好域名打造高点击率的自主建站?
视频网站制作教程,怎么样制作优酷网的小视频?
linux top下的 minerd 木马清除方法
宝塔新建站点报错如何解决?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何选择适配移动端的WAP自助建站平台?
如何撰写建站申请书?关键要点有哪些?
如何通过PHP快速构建高效问答网站功能?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
如何通过二级域名建站提升品牌影响力?
移民网站制作流程,怎么看加拿大移民官网?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
Python路径拼接规范_跨平台处理说明【指导】
寿县云建站:智能SEO优化与多行业模板快速上线指南
如何在万网开始建站?分步指南解析
官网建站费用明细查询_企业建站套餐价格及收费标准指南
实现点击下箭头变上箭头来回切换的两种方法【推荐】
建站主机服务器选购指南:轻量应用与VPS配置解析
c++ stringstream用法详解_c++字符串与数字转换利器
香港服务器租用费用高吗?如何避免常见误区?
如何在香港服务器上快速搭建免备案网站?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何快速搭建高效可靠的建站解决方案?
公众号网站制作网页,微信公众号怎么制作?
微信小程序 五星评分(包括半颗星评分)实例代码
用v-html解决Vue.js渲染中html标签不被解析的问题
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
如何通过VPS建站无需域名直接访问?
简单实现Android文件上传
电脑免费海报制作网站推荐,招聘海报哪个网站多?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何在IIS管理器中快速创建并配置网站?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
*请认真填写需求信息,我们会在24小时内与您取得联系。