- 浏览: 5778316 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 3777我把SlidingDrawer源码提了出来,希望对1.5的朋友 ... -
简单拖动效果(带Cache,需要完善)
2011-10-13 15:10 4183如何去实现一个具有幻象的拖拽效果? 所谓”幻象“就是当你按下去 ... -
Android Activity中启动另一应用程序的方法,无需得到类名
2011-08-02 14:46 17200在网上搜索了一会相关的实现代码,发现所有的文章都说是需要包名和 ... -
java-universal-tween-engine,一个动画系统库
2011-06-29 09:21 6700http://code.google.com/p/java-u ... -
网上发现的一个android UI包
2011-05-24 12:21 4050里面有些UI和效果 -
android中使用代码启动其他程序
2011-04-29 23:15 5223你要訪問其他的程序,那麼這個程序要先裝載到模擬器或真機上面,因 ... -
listView背景问题以及限制editText字数以及如果想通知别人已经不能在写
2011-04-29 22:44 31621.在listView设置好背景之后 你如果点击空白出 你会发 ... -
Android键盘和触摸事件处理
2011-04-29 22:32 6965activity和VIEW都能接收触摸和按键,如果响应事件只需 ... -
Android的绘制文本对象FontMetrics的介绍及绘制文本
2011-04-29 22:29 11463一。Android绘制文本对象FontMetrics介绍 ... -
Android View 拖动&插入
2011-04-29 22:20 3508View 拖动&插入 即: 支持 拖动图标 然后 ... -
ArrayAdapter源码
2011-04-29 12:29 6265看看人家怎么写的。 /* * Copyright (C ... -
Android下获取开机时间
2011-04-02 21:51 6186找了一圈没发现能得到开机启动时间资料,于是乎突发奇想,得到了解 ... -
AutoCompleteTextView连接到数据库
2011-03-30 20:49 4656AutoCompleteTextView可以根据输入 ... -
改变屏幕Brightness(亮度)
2011-03-30 12:48 4568http://www.eoeandroid.com/forum ... -
android 拖拽图片&拖动浮动按钮到处跑
2011-02-24 20:55 31706来自老外: import android.app.Acti ... -
拖动一个控件在另一个控件(layout)上,并固定位置在几个位置显示
2011-02-24 20:51 5852实现效果: 鼠标拖动btn SSS,SSS在水平的layo ... -
Handler与Message类,实现n秒后无操作自动消失功能
2011-02-24 20:45 4596实现功能:某控件不操作10秒后,自动消失。如照相机变焦条出现后 ... -
带删除按钮的ListView
2011-02-24 10:33 6115不用说了,上图先: import java.util.A ... -
android3.0之Action Bar基础
2011-02-22 17:12 6795http://www.android123.com.cn/an ...
相关推荐
在TextView中,如果文本很长,可能需要实现垂直滚动显示文本的效果。这里需要在XML布局文件中为TextView设置如下几个属性。 Android:scrollbars=vertical android:scrollbarStyle=X 其中X为outsideOverlay或...
自定义垂直循环滚动Textview.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
最近突然对原来做的一个项目有想法,当时是一个显示文本的界面会循环滚动,因为时间比较仓促,就以实现需求为目的写了一个滚动的TextView,结果还是效果挺好的。现在想把它分享给大家,这次写demo是从零开始,没在...
上面左右滑动的非常好实现,直接把AutoHorizontalScrollTextView复制到项目中,复制全类名到布局文件中,和系统TextView一样,只需设置文本其他什么都不用设置; 下面垂直滚动的AutoVerticalScrollTextView相比...
基本TextView控件的应用,包括TextView各种属性的设置,特殊的效果的TextView,如带边框的TextView各种实现方法,走马灯,垂直滚动,自动垂直滚动,歌词显示效果,超链接,Html标签在TextView中的应用等。
TextView(具有垂直和水平滚动以及自动换行模式的类似ListBox的控件) ProgressBar(垂直和水平。后一个支持自定义文本控件) 框架(装饰性控件,也可以作为其他控件的容器) 可滚动框架 复选框(简单复选框) ...
安卓java读取网页源码 Android_Assembly_Summary 对Android各组件分类汇总 一 、基本控件 TextView HTextView 一款支持TextView文字动画效果的Android组件库...垂直的Textview JumpingBeans 文字像 Mexican beans 一样
垂直滚动(ScrollView) 77 水平滚动(HorizontalScrollView) 78 两个方向均可滚动 78 TabHost 79 ProgressBar、SeekBar、RatingBar 81 进度条(ProgressBar) 81 拖动条(SeekBar) 83 评分组件(RatingBar) 86 ...
6.22 ScrollView垂直滚动控件的使用 6.23 HorizontalScrollView水平滚动 6.24 Gallery画廊控件 6.25 Spinner下拉列表控件 6.26 ImageSwitcher图片切换控件 6.27 GridView网格控件 6.28 TabHost卡片的使用 6.29 ...
TextView <style name="textview_style">... android:scrollbars="vertical"//滚动形式:垂直滚动 android:layout_width="match_parent"//宽度 android:layout_height="wrap_content" //高度 />