Android中TextView实现垂直滚动和上下滚动效果

布局里面就是两个自定义的TextView,上面的左右滑动的是AutoHorizontalScrollTextView;

下面上下滚动的是AutoVerticalScrollTextView;

上面左右滑动的非常好实现,直接把AutoHorizontalScrollTextView复制到项目中,复制全类名到布局文件中,和系统TextView一样,只需设置文本其他什么都不用设置;

下面垂直滚动的AutoVerticalScrollTextView相比AutoHorizontalScrollTextView稍微麻烦一点;但是也非常简单;

如果在项目中使用的话直接把AutoVerticalScrollTextView复制到项目中;

有些属性在布局文件中没有办法设置,需要在makeView()方法中设置:现在这个字体是白色的,如果不需要去掉

//这里返回的TextView,就是我们看到的View,可以设置自己想要的效果
 public View makeView() {
  TextView textView = new TextView(mContext);
  textView.setGravity(Gravity.LEFT);
  textView.setTextSize(20);
  textView.setSingleLine(true);
  textView.setGravity(Gravity.CENTER_VERTICAL);
  textView.setEllipsize(TextUtils.TruncateAt.END);
  textView.setTextColor(Color.WHITE);
  return textView;
 } 

接下来看下布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical">
 <!--左右滚动的textview-->
 <www.autotextview.com.autotextview.View.AutoHorizontalScrollTextView
  android:textSize="20sp"
  android:background="#000000"
  android:textColor="#ffffff"
  android:id="@+id/textview"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:singleLine="true"
  />
 <!--上下滚动的TextView-->
 <www.autotextview.com.autotextview.View.AutoVerticalScrollTextView
  android:id="@+id/textview_auto_roll"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="#000000"
  android:padding="5dp"
  />
</LinearLayout> 

布局文件就非常简单了,接下来说下两个View具体怎么使用:

左右滚动的TextView,直接设置一个TextView即可;

horizontalScrollTV = (AutoHorizontalScrollTextView) findViewById(R.id.textview);
  horizontalScrollTV.setText(titleStr); 

而垂直滚动的TextView需要的是一个数组,当执行next()方法的时候会执行动画切换下一个数据;
在项目中我直接定义了一个计时器,每隔2秒发送一个消息,然后执行AutoVerTicalScrollTextView.next();

private String[] strings={"我的剑,就是你的剑!","俺也是从石头里蹦出来得!","我用双手成就你的梦想!","人在塔在!","犯我德邦者,虽远必诛!","我会让你看看什么叫残忍!","我的大刀早已饥渴难耐了!"};
  verticalScrollTV = (AutoVerticalScrollTextView) findViewById(R.id.textview_auto_roll);
  verticalScrollTV.setText(strings[0]);
  new Thread(){
   @Override
   public void run() {
    while (isRunning){
     SystemClock.sleep(3000);
     handler.sendEmptyMessage(199);
    }
   }
  }.start(); 
private Handler handler = new Handler() {
  public void handleMessage(Message msg) {
   if (msg.what == 199) {
    verticalScrollTV.next();
    number++;
    verticalScrollTV.setText(strings[number%strings.length]);
   }
  }
 }; 

点击事件是后期加上去的,在MainActivity的initView()方法中添加以下代码:

verticalScrollTV.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    Toast.makeText(MainActivity.this,strings[number%strings.length],Toast.LENGTH_SHORT).show();
   }
  }); 

以上所述是小编给大家介绍的Android中TextView实现垂直滚动效和上下滚动效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Android实现Activity水平和垂直滚动条的方法

    本文实例讲述了Android实现Activity水平和垂直滚动条的方法.分享给大家供大家参考,具体如下: <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="

  • Android自定义View实现仿1号店垂直滚动广告条代码

    效果图展示,图片有点卡,耐心看会,原程序是很流畅的 实现步骤: 声明变量 初始化画笔.文本大小和坐标 onMeasure()适配wrap_content的宽高 onDraw()画出根据坐标画出两段Text 监听点击事件 在Activity中实现点击事件 实现原理(坐标变换原理):整个过程都是基于坐标Y的增加和交换进行处理的,Y值都会一直增加到endY,然后进行交换逻辑 步骤一:声明变量 由于1号店是两句话的滚动,所以我们也是使用两句话来实现的 private Paint mPaint; priv

  • android开发之横向滚动/竖向滚动的ListView(固定列头)

    由于项目需要,我们需要一个可以横向滚动的,又可以竖向滚动的 表格.而且又要考虑大数据量(行)的展示视图.经过几天的研究终于搞定,做了一个演示.贴图如下:      好吧.让我们看思路是什么样的: 1. 上下滚动直接使用 listView来实现. 2. 左右滚动使用HorizontalScrollView,来处理滚动.我写一个类MyHScrollView继承 自它. 2.1 . ListView里的每行(row)分为 两部分,不滚动的和可滚动的区域.比如本demo的第一列,就是静态的.而后面的所有

  • Android TextView实现垂直滚动效果的方法

    本文实例讲述了Android TextView实现垂直滚动效果的方法.分享给大家供大家参考,具体如下: 在TextView中,如果文本很长,可能需要实现垂直滚动显示文本的效果.这里需要在XML布局文件中为TextView设置如下几个属性. Android:scrollbars="vertical" android:scrollbarStyle="X" 其中X为outsideOverlay或insideOverlay. android:scrollbarFadeDur

  • Android控件ViewFlipper仿淘宝头条垂直滚动广告条

    ViewFlipper的使用,仿淘宝头条垂直滚动广告条,供大家参考,具体内容如下 学习,学习,学以致用 ViewFlipper是安卓自带的控件,很多人可能很少知道这个控件,这个控件很简单,也很好理解,能不能用上实战就看你们的本事了.下面是淘宝头条广告的原效果 下面是我们今天要实现的效果,图片是Gif,运行效果是很流畅的,由于这个图片反应有点慢,会浪费大家点时间,所以我把它调快了,大家可以掏出手机打开淘宝看,一模一样的 从源码可以看出,其实ViewFlipper间接的继承了FrameLayout,

  • android TextView不用ScrollViewe也可以滚动的方法

    代码 复制代码 代码如下: TextView textview = (TextView) findViewById(R.id.text);            /**             *              * 只有调用了该方法,TextView才能不依赖于ScrollView而实现滚动的效果.             * 要在XML中设置TextView的textcolor,否则,当TextView被触摸时,会灰掉.             */ textview.setMov

  • Android仿即刻首页垂直滚动图,炫酷到底!

    项目地址:https://github.com/JeasonWong/JikeGallery 话不多说,先上效果. 这个效果是在即刻app上看到,觉得很不错,遂仿之. 先说下我的实现思路(以上方的图片滚动为例,下方的文字实现效果类似): 自定义ViewGroup 装载两个ImageView和一个阴影View 通过一定规律交替控制两个ImageView和它们的marginTop,在onLayout()中实现 marginTop的具体值由属性动画控制,不断调用requestLayout() 接下来依

  • Android仿淘宝首页头条View垂直滚动效果

    之前本来是打算做TextView垂直向上滚动的,后来发现一位大神做得很好,https://github.com/sfsheng0322/MarqueeView 孙福生大神,然后自己要用到多个View向上滚动,也就是类似淘宝首页头条的那种滚动,所以就按照那个思路想了系啊,可以把View拿来滚动,这样可以自己随意的修改View里面的内容,还比较简单一些.所以这个整个思路就是把View就行循环滚动. 看一下循环滚动View的内容咋写的吧,非常简单. package com.dreamlive.upma

  • android实现上下滚动的TextView

    一 说明    这里重要应用类 AutoTextView,这是一个自定义的类,继承至TextSwitcher,下面临 AutoTextView类做简要说明: 1. 该类应用的重点,在于设置两个动画, setInAnimation(...)  和 setOutAnimation(...),分离是文字进入的动画和文字退出的动画: 2. 类中定义了一个外部类-Rotate3dAnimation,重要靠该类实现文字进出动画,该外部类继承至Animation.说来偶合,这个恰好是在apiDemo中看到了,

  • android listview 水平滚动和垂直滚动的小例子

    网上有很多解决 android listview 水平和垂直滚动的代码,我没有按照他们说的做(以前没搜到 O(∩_∩)O~) 我采用的是添加HorizontalScrollViewJava代码 复制代码 代码如下: < ScrollView android:id="@+id/ScrollView01" android:layout_height="300px" android:layout_x="16px" android:layout_y

随机推荐