- 浏览: 5820832 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
在做一个小的电子书程序,要求电子书具有放大缩小的功能,所以肯定的要用到TextView的滚动效果。同样的还要求TextView在水平方向和垂直方向上都可以滚动。刚做的时候,也是没有头绪,后来想到了,TextView有一个ScrollTo或者ScrollBy方法,何不如此一用呢!
1.前期找资料
因为刚开始,不知道怎么能够滚动,所以先去网上查找资料,垂直滚动很容易实现,直接使用TextView的
setMovementMethod(ScrollingMovementMethod.getInstance());
方法就可以了。可是水平滚动如何实现?晚上说在TextView的前面在套一层HorizontalScrollView,这个我也做了尝试,效果不佳,因为你有可能要在程序中动态的改变TextView的布局,这样子程序中就会出错;在者如果你设定了你的TextView为500px,而你的内容一行要有700px,这时你的内容不会自动的切为两行;第三,在添加一个HorizontalScrollView感觉很不舒服,起码界面是这样。所以综合这几点,我放弃了使用这种方法。接着就想到用ScrollTo方法,首先需要声明的是,采用这种方法,你的程序中是没有水平和垂直滚动条的,这个你可以自己去优化实现,理论上是绝对可行的。我现在说的是我能保证文本可以水平和垂直滚动,但没有保证有滚动条。好,接下来,King就以一个实例做一下简单的使用。
2.我的实现。(里面注释很详细,就不过多说了)
3.后续
我的文件是jinju.txt,是放在assets文件夹下面的,当然你可以放在其他的位置,指定你自己的路径就可以了,main.xml里面只有一个TextView,所以也没贴出来,下面看几张效果图:
http://hi.baidu.com/ljlkings/blog/item/ffe87e6cc51843cf80cb4a55.html
设置带滚动条的TextView
本来是想做一个显示文字信息的,当文字很多时View的高度不能超过一个固定的值,当文字很少时View的高度小于那个固定值时,按View的高度显示。因为ScrollView没有maxHeight,无法满足需求,只好另找方法了。
View本身是可以设置ScrollBar,这样就不一定需要依赖ScrollView了。TextView有个属性maxLine,这样也就满足了需求了,只要设置一个TextView带ScrollBar的,然后设置maxLine就可以了。
还需要在代码了设置TextView可以滚动。
Android中计算一个文件在TextView中的显示
http://hi.baidu.com/ljlkings/blog/item/47f1afdb8874c9fd39012fdd.html
1.前期找资料
因为刚开始,不知道怎么能够滚动,所以先去网上查找资料,垂直滚动很容易实现,直接使用TextView的
setMovementMethod(ScrollingMovementMethod.getInstance());
方法就可以了。可是水平滚动如何实现?晚上说在TextView的前面在套一层HorizontalScrollView,这个我也做了尝试,效果不佳,因为你有可能要在程序中动态的改变TextView的布局,这样子程序中就会出错;在者如果你设定了你的TextView为500px,而你的内容一行要有700px,这时你的内容不会自动的切为两行;第三,在添加一个HorizontalScrollView感觉很不舒服,起码界面是这样。所以综合这几点,我放弃了使用这种方法。接着就想到用ScrollTo方法,首先需要声明的是,采用这种方法,你的程序中是没有水平和垂直滚动条的,这个你可以自己去优化实现,理论上是绝对可行的。我现在说的是我能保证文本可以水平和垂直滚动,但没有保证有滚动条。好,接下来,King就以一个实例做一下简单的使用。
2.我的实现。(里面注释很详细,就不过多说了)
public class Test_ScrollingText extends Activity implements OnTouchListener, OnGestureListener { // 实现触摸和手势的接口 private TextView mContent; private DisplayMetrics metrics; private int mScreenWidth, mScreenHeight;// 屏幕分辨率 private GestureDetector mDetector;// 手势监听者 private String mDisplayTxt = ""; private int mCurrentX = 0, mCurrentY = 0;// TextView左上角的像素值 /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);// 全屏 metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); mScreenWidth = metrics.widthPixels; mScreenHeight = metrics.heightPixels;// 获得屏幕分辨率 setContentView(R.layout.main);// 指定布局 mContent = (TextView) findViewById(R.id.content); resetTextView(); loadFile(); mDetector = new GestureDetector(this); mContent.setOnTouchListener(this); mContent.setLongClickable(true);// 初始化,注意这三步是必不可少的,但没顺序的限制 mContent.setText(mDisplayTxt);// 显示文件内容 } // 加载文件 private void loadFile() { // TODO Auto-generated method stub String mTemp; try { InputStream mInputStream = getAssets().open("jinju.txt"); BufferedReader mBufferedInputStream = new BufferedReader( new InputStreamReader(mInputStream)); while ((mTemp = mBufferedInputStream.readLine()) != null) { mDisplayTxt += mTemp; } mDisplayTxt = mDisplayTxt.replace(' ', '\n'); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 重置TextView的大小 private void resetTextView() { // TODO Auto-generated method stub LinearLayout.LayoutParams mParams = (LayoutParams) mContent .getLayoutParams(); mParams.width = mScreenWidth + 300; mParams.height = mScreenHeight + 500; mContent.setLayoutParams(mParams); } // 触摸TextView @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub return mDetector.onTouchEvent(event);// 工作交给手势监听者 } // 下面的各个函数是OnGestureListener的实现,具体动作这里不做赘述 @Override public boolean onDown(MotionEvent e) { // TODO Auto-generated method stub return false; } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // TODO Auto-generated method stub return false; } @Override public void onLongPress(MotionEvent e) { // TODO Auto-generated method stub } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { // TODO Auto-generated method stub int mLayoutWidth = mContent.getLayoutParams().width; // 获得TextView的宽度 int mLayoutHeight = mContent.getLineCount() * mContent.getLineHeight(); // 获得TextView的实际高度 if (mCurrentX + distanceX >= 0) { if (mCurrentX + distanceX > mLayoutWidth - mScreenWidth) { mCurrentX = mLayoutWidth - mScreenWidth; } else { mCurrentX = (int) (mCurrentX + distanceX); } } else { mCurrentX = 0; } if (mCurrentY + distanceY >= 0) { if (mCurrentY + distanceY > mLayoutHeight - mScreenHeight) { mCurrentY = mLayoutHeight - mScreenHeight; } else { mCurrentY = (int) (mCurrentY + distanceY); } } else { mCurrentY = 0; } mContent.scrollTo(mCurrentX, mCurrentY); // 使文本滚动到指定的地方 return false; } @Override public void onShowPress(MotionEvent e) { // TODO Auto-generated method stub } @Override public boolean onSingleTapUp(MotionEvent e) { // TODO Auto-generated method stub return false; } }
3.后续
我的文件是jinju.txt,是放在assets文件夹下面的,当然你可以放在其他的位置,指定你自己的路径就可以了,main.xml里面只有一个TextView,所以也没贴出来,下面看几张效果图:
http://hi.baidu.com/ljlkings/blog/item/ffe87e6cc51843cf80cb4a55.html
设置带滚动条的TextView
本来是想做一个显示文字信息的,当文字很多时View的高度不能超过一个固定的值,当文字很少时View的高度小于那个固定值时,按View的高度显示。因为ScrollView没有maxHeight,无法满足需求,只好另找方法了。
View本身是可以设置ScrollBar,这样就不一定需要依赖ScrollView了。TextView有个属性maxLine,这样也就满足了需求了,只要设置一个TextView带ScrollBar的,然后设置maxLine就可以了。
<TextView android:id="@+id/text_view" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="false" android:maxLines="10" android:scrollbars="vertical" />
还需要在代码了设置TextView可以滚动。
TextView textView = (TextView)findViewById(R.id.text_view); textView.setMovementMethod(ScrollingMovementMethod.getInstance());
Android中计算一个文件在TextView中的显示
http://hi.baidu.com/ljlkings/blog/item/47f1afdb8874c9fd39012fdd.html
发表评论
-
http://www.android-studio.org/
2018-08-06 09:25 0http://www.android-studio.org/ ... -
SlidingDrawer源码
2012-03-14 10:13 3806我把SlidingDrawer源码提了出来,希望对1.5的朋友 ... -
简单拖动效果(带Cache,需要完善)
2011-10-13 15:10 4227如何去实现一个具有幻象的拖拽效果? 所谓”幻象“就是当你按下去 ... -
Android Activity中启动另一应用程序的方法,无需得到类名
2011-08-02 14:46 17259在网上搜索了一会相关的实现代码,发现所有的文章都说是需要包名和 ... -
java-universal-tween-engine,一个动画系统库
2011-06-29 09:21 6742http://code.google.com/p/java-u ... -
网上发现的一个android UI包
2011-05-24 12:21 4093里面有些UI和效果 -
android中使用代码启动其他程序
2011-04-29 23:15 5289你要訪問其他的程序,那麼這個程序要先裝載到模擬器或真機上面,因 ... -
listView背景问题以及限制editText字数以及如果想通知别人已经不能在写
2011-04-29 22:44 32091.在listView设置好背景之后 你如果点击空白出 你会发 ... -
Android键盘和触摸事件处理
2011-04-29 22:32 7003activity和VIEW都能接收触摸和按键,如果响应事件只需 ... -
Android的绘制文本对象FontMetrics的介绍及绘制文本
2011-04-29 22:29 11491一。Android绘制文本对象FontMetrics介绍 ... -
Android View 拖动&插入
2011-04-29 22:20 3547View 拖动&插入 即: 支持 拖动图标 然后 ... -
ArrayAdapter源码
2011-04-29 12:29 6302看看人家怎么写的。 /* * Copyright (C ... -
Android下获取开机时间
2011-04-02 21:51 6226找了一圈没发现能得到开机启动时间资料,于是乎突发奇想,得到了解 ... -
AutoCompleteTextView连接到数据库
2011-03-30 20:49 4728AutoCompleteTextView可以根据输入 ... -
改变屏幕Brightness(亮度)
2011-03-30 12:48 4604http://www.eoeandroid.com/forum ... -
android 拖拽图片&拖动浮动按钮到处跑
2011-02-24 20:55 31771来自老外: import android.app.Acti ... -
拖动一个控件在另一个控件(layout)上,并固定位置在几个位置显示
2011-02-24 20:51 5893实现效果: 鼠标拖动btn SSS,SSS在水平的layo ... -
Handler与Message类,实现n秒后无操作自动消失功能
2011-02-24 20:45 4641实现功能:某控件不操作10秒后,自动消失。如照相机变焦条出现后 ... -
带删除按钮的ListView
2011-02-24 10:33 6146不用说了,上图先: import java.util.A ... -
android3.0之Action Bar基础
2011-02-22 17:12 6828http://www.android123.com.cn/an ...
相关推荐
1. 垂直滚动:当TextView中的文本内容超出可视区域时,可以通过垂直滚动来展示未显示的部分。通常有两种模式,一种是自动滚动,另一种是手动滚动。 2. 上下滚动效果:这是垂直滚动的两种方向,上滚是文本向上移动,...
本篇文章将深入探讨如何实现TextView的水平滚动和垂直滚动效果,并通过实际案例进行说明。 首先,我们要了解TextView的基本属性。`android:singleLine`(已被弃用,但仍然可用)或`android:maxLines`属性可以限制...
在Android开发中,当需要在一个TextView中展示大量文本,而屏幕空间有限时,可以使用TextView的垂直滚动功能来实现文本的连续显示。本篇文章将详细讲解如何在Android中实现TextView的垂直滚动效果。 首先,要开启...
"安卓textView相关-自定义垂直循环滚动Textview.rar"正是为了解决这一问题,它提供了一个自定义的TextView实现,使得文本可以垂直方向上循环滚动,增加了信息的可读性。 自定义垂直循环滚动TextView的主要目标是...
在XML布局文件中,可以通过设置`TextView`的相关属性来开启垂直滚动: ```xml <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text...
实现`垂直滚动的TextView`的关键在于重写`onDraw()`方法或者使用`Scroller`和`Layout`来控制文本的滚动。`Scroller`是一个辅助类,它可以计算出平滑滚动的过程,而`Layout`则负责处理文本的布局。开发者可能需要设置...
然而,原生的TextView默认只支持水平滚动,若要实现垂直滚动,我们需要对TextView进行一定的定制。这个Demo中的VerticalScrollTextView可能是对原生TextView的一个子类,添加了垂直滚动的功能。 要实现垂直滚动,...
Android提供了两种基本的滚动方式:水平滚动和垂直滚动。在这个案例中,我们关注的是垂直滚动,即TextView的内容能从上至下逐行滚动。 要实现TextView的上下滚动,我们需要使用`android:singleLine`和`android:...
虽然Android SDK原生支持TextView的水平滚动(横向跑马灯效果),但并未提供直接的方法来实现垂直滚动。在面对这种需求时,开发者需要自定义解决方案。 首先,我们来看一下XML布局文件`textscroll.xml`的部分配置。...
当我们需要显示的文本过长,超出屏幕范围时,可以利用`TextView`的垂直滚动功能来实现文本的完整展示。本篇文章将深入探讨如何在Android中设置`TextView`实现垂直滚动,并通过一个名为`VerticalScrollTextView_Demo`...
在Android开发中,实现一个垂直滚动的TextView以达到跑马灯效果是一项常见的需求。这种效果常见于各种信息展示,如公告、广告等,使得较长的文字能够在有限的空间内完整展示。以下将详细介绍如何在Android中创建这样...
然而,在某些场景下,我们可能需要实现文本的滚动效果,例如公告、滚动字幕等,这时就需要用到“垂直滚动的`TextView`”。本文将深入探讨如何在Android中创建一个可以垂直滚动的`TextView`。 首先,我们要理解`...
综上所述,实现Android的垂直滚动和水平滚动跑马灯效果,需要结合自定义View、文本绘制、动画机制、文本截断、方向控制和性能优化等多个知识点。通过这个项目,开发者可以深入理解Android图形绘制和动画系统,提升...
然而,当文本内容过多,无法完全在视窗内显示时,开发者可能会需要实现一个可以自动垂直滚动的TextView,这就是"垂直滚动TextView"的功能。这个功能通常用于展示长篇文本,如公告、条款或新闻,让用户能够逐行阅读。...
在Android开发中,文本垂直滚动,也常被称为垂直跑马灯效果,是一种常见的UI动态展示方式,尤其适用于显示有限空间内的大量文字信息。这个效果可以让文本在竖直方向上不断滚动,给人一种信息持续流动的感觉。在给定...
`TextView`自身已经提供了简单的滚动机制,通过设置`android:singleLine`或`android:maxLines`属性限制行数,再配合`android:ellipsize`属性可以使文本超出部分以省略号表示,同时开启`android:scrollHorizontally`...
然而,当文本内容过多,无法在屏幕内完全展示时,我们可能需要实现文本的垂直滚动功能,以确保用户可以阅读所有信息。本篇文章将深入探讨如何在Android中创建一个能够垂直滚动的TextView。 首先,了解TextView的...
以上就是如何自定义TextSwitcher实现文本垂直滚动的基本步骤。在实际应用中,你可能需要根据项目需求进行进一步的定制和优化。提供的代码示例文件"Cailian_VerticalTextView"可能是实现这个功能的具体源代码,可以...
`marquee`是`TextView`的一个特性,它能模拟跑马灯效果,使文本在视图内连续滚动。 要开启`TextView`的滚动效果,我们需要在XML布局文件中设置以下属性: ```xml <TextView android:id="@+id/text_view" android...
- 自动滚动:当文本内容超过TextView的显示范围时,通过设置滚动属性,使文本能够自动滚动展示未显示的部分。 2. **基本实现** - 对于上下滚动,可以使用`android:singleLine`(API 26以下)或`android:maxLines=...