- 浏览: 406105 次
- 性别:
- 来自: 福州
最新评论
-
野牛精:
感谢楼主分享,帮大忙了。
android ftp 客户端编写(ftp4j) -
happytianqiu:
你好,我最近也在搞这个,能发个demo吗,邮箱是:624951 ...
开发android机顶盒应用 事件,焦点处理 -
zhunanfengfeimeng:
http://www.iteye.comhttp://www. ...
android ftp 客户端编写(ftp4j) -
icyttea:
好棒!感谢楼主分享
vlc for android录制视频与截图 -
clwwlc:
有demo吗
开发android机顶盒应用 事件,焦点处理
一个文本渐渐地从左到右的显示。
几步就可以了实现了。利用的是View的fade边缘。当然也可以自己画,可是没有成功。
几步就可以了实现了。利用的是View的fade边缘。当然也可以自己画,可是没有成功。
直接上代码: class FadeTextView extends TextView { long delta=70l; //步进时间 int width=0; //字符串宽度 int widthPixels=0; //字符串的显示宽度 int wp=4; //字符串的显示宽度步进 public FadeTextView(Context context) { super(context); init(); } public FadeTextView(Context context, AttributeSet attrs) { super(context, attrs); TypedArray a= context.obtainStyledAttributes( attrs, R.styleable.FadeTextView); delta=(long) a.getInt(R.styleable.FadeTextView_fade_txt_delta, (int) delta); wp=a.getInt(R.styleable.FadeTextView_fade_txt_wp, wp); init(); } public FadeTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); TypedArray a= context.obtainStyledAttributes( attrs, R.styleable.FadeTextView, defStyle, 0); delta=(long) a.getInt(R.styleable.FadeTextView_fade_txt_delta, (int) delta); wp=a.getInt(R.styleable.FadeTextView_fade_txt_wp, wp); init(); } //关于delta,wp这两个属性是在attrs.xml中配置的。动画显示的速度由这两个值控制,当然要加入时间的话,也是可以。以时间为第一选择,然后才是每次显示的宽度 private void init() { setSingleLine(true); setHorizontalFadingEdgeEnabled(true); //这两句才能显示出阴影效果。 widthPixels=4; width=(int) getPaint().measureText(getText().toString()); KeelLog.v("init.width:"+width+" getText().toString():"+getText().toString()); postDelayed(mRunnable, delta); } @Override public void setText(CharSequence text, BufferType type) { super.setText(text, type); init(); } //这个是最重要的方法,就是对TextView设置宽度,因为当一个TextView宽度不够显示出文本时,边缘会有阴影效果。当然还要设置单行的,否则是不行的。 public void setWidthLength(int pixels) { setWidth(pixels); } Runnable mRunnable=new Runnable() { @Override public void run() { //KeelLog.d("update:"+widthPixels+" width:"+width); if (width>0&&widthPixels<width) { widthPixels+=wp; setWidthLength(widthPixels); postInvalidate(); postDelayed(mRunnable, delta); } else { //removeCallbacks(mRunnable); } } }; } attrs.xml <declare-styleable name="FadeTextView"> <attr name="fade_txt_delta" format="reference|integer"/> <attr name="fade_txt_wp" format="reference|integer"/> </declare-styleable> 如果使用xml,则不会产生阴影,而是... ,这可能要设置一些属性。 用java代码添加: LinearLayout layout;//=new LinearLayout(this); layout=(LinearLayout) findViewById(R.id.layout); layout.setOrientation(LinearLayout.VERTICAL); layout.setBackgroundColor(R.color.holo_green_light); final FadeTextView textView=new FadeTextView(this); //textView.setWidthLength(8); LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); //layoutParams.gravity=Gravity.CENTER; textView.setTextSize(28); textView.setText("互联网电视"); layout.addView(textView, layoutParams); 就可以看效果了。 View中的画阴影的代码:这段代码不起作用。就只能用上面的笨办法来淡入显示文本了。 int saveCount; int length=40; //fade length float right; float top=0; float bottom; float fadingEdgeLength=25f; float rightFadeStrength=5f; public Paint paint; public Matrix matrix; public Shader shader; private void drawTxt(Canvas canvas) { /*setFadingEdgeLength(length); setHorizontalFadingEdgeEnabled(true); setFadeColor(Color.GREEN);*/ right=getRight(); bottom=getBottom(); fadingEdgeLength=getHeight(); saveCount=canvas.getSaveCount(); int solidColor=getSolidColor(); if (solidColor==0) { final int flags=Canvas.HAS_ALPHA_LAYER_SAVE_FLAG; canvas.saveLayer(right-length, top, right, bottom, null, flags); } else { setFadeColor(solidColor); } // Step 5, draw the fade effect and restore layers final Paint p=paint; final Matrix matrix=MyTextView.this.matrix; final Shader fade=shader; final float fadeHeight=fadingEdgeLength; matrix.setScale(1, fadeHeight*rightFadeStrength); matrix.postRotate(90); matrix.postTranslate(right, top); fade.setLocalMatrix(matrix); canvas.drawRect(right-length, top, right, bottom, p); KeelLog.d(VIEW_LOG_TAG, String.format("top:%f,right:%f,bottom:%f,(right-length):%f,fadingEdgeLength:%f", top, right, bottom, right-length, fadingEdgeLength)); canvas.restoreToCount(saveCount); } private void init() { setText(subText); right=getRight(); bottom=getBottom(); paint=new Paint(); matrix=new Matrix(); // use use a height of 1, and then wack the matrix each time we // actually use it. shader=new LinearGradient(0, 0, 0, 1, 0xFF000000, 0, Shader.TileMode.CLAMP); paint.setShader(shader); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT)); } 其中两个重点是:canvas.saveLayer(right-length, top, right, bottom, null, flags); 遮罩层。就是阴影部分。 shader=new LinearGradient(0, 0, 0, 1, 0xFF000000, 0, Shader.TileMode.CLAMP); paint.setShader(shader); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));//填充方式,大概是中间空的,边缘较突出的 可是上面的代码画不出阴影。失望。 如果有同学用这段代码画出来了,希望回复。
发表评论
-
android 批量打渠道包
2014-09-16 17:27 5818打包,是一个经常会遇到的问题,写个脚本就可以解决了.不同的脚本 ... -
vlc for android录制视频与截图
2014-09-08 18:31 7976首先说明,这不算原 ... -
android百度地图转为高德地图
2014-08-11 11:09 2909使用百度地图也不少时间了,但是一直出现无法解决的问题,在官 ... -
编译 i9000的cm系统
2014-08-04 13:10 1540[color=red][b]此文 并不 ... -
mp4v2 保存h264流
2014-05-01 21:15 11765大侠已经完成了很多操作了,唯一不足的是,工程完整性差一些,而且 ... -
baidumap的缩放到看到所有点
2014-04-09 21:03 1401之前使用1.3.5版本的sdk,通过调用mapviewcont ... -
ViewPager 查看图片
2014-02-13 12:59 4473一个图片查看器 , app到处都是 , 但那是别人的. 现在的 ... -
机顶盒 页面 选中后的 动画
2013-12-05 09:39 2133前面已经说过了,对于机顶盒的焦点的处理. 相信有不少人看 ... -
引爆你的图片浏览, ListView 大图片
2013-11-05 07:58 1264之前发现,ListView里面的图片资源越占越大,特别是当 ... -
微博开放源码
2013-10-23 12:09 987微博程序已经发布不少时间了,但一直也没有很多用户使用,主要在用 ... -
Mupdf 缩小apk包,减少字体
2013-10-20 15:53 3666在以前的apv中,字体占了很大的一部分,如果去除cjk字体 ... -
ActionBar appcompat 解决碎片化问题
2013-09-15 16:58 2121actionbarsherlock 这个在api11以下的系统 ... -
android机顶盒获取有线mac
2013-09-02 16:09 5438直接上代码: public static String ... -
android竖着的seekbar
2013-08-22 20:33 5431以前网上有位虾士发过一篇文章是关于竖着的seekbar,但是也 ... -
新浪微博oauth2.0 自动认证
2013-08-13 09:01 0oauth2.0作者认为它不先进,都放弃了.但是oauth2. ... -
android 颜表情.
2013-07-20 21:16 1780在使用TagsViewGroup 流布局后,我替换了原来的Gr ... -
flow 流布局.
2013-07-13 20:06 1260在git上看到一个FlowingViewGroup,代码有点旧 ... -
开发android机顶盒应用 事件,焦点处理
2013-07-13 19:58 19753机顶盒应用不同于手机 ... -
android 磁盘缓存.
2013-07-13 19:30 5234开发一个app,特别是图片的app,免不了要存储图片,内存缓存 ... -
制造垃圾短信
2013-01-28 14:25 1373往系统中插入一条短信息,然后在通知栏中通知,点击通知栏后可以在 ...
相关推荐
应用Secret 中的效果实现的文字淡入淡出的效果,不同的文字淡入淡出的效果、速度是不同的。项目地址:https://github.com/matthewrkula/SecretTextView效果图:如何使用SecretTextView继承了android.widget.TextView...
旋转TextView文字显示方向,可参考学习一下。
Android实现TextView文字滚动
Android textview 文字中间加上图片
android实现TextView文字部分渐变色;LinearGradientFontSpan SpannableString
自定义TextView实现文字闪烁效果
Android三种方法实现TextView文字滚动效果,很多人叫做跑马灯,这个不是图片滚动,是纯文字版的,我这android环境Down掉了,死活调试不起来,没截图了,需要的自行下载本源码包,代码中有中文注释,从代码看,除了...
textview文字翻滚动画,向下向上动画,消息轮播
Android例子源码20多种TextView文字效果例子,开发中会用到的
android textview 文字排版 换行
实现TextView的点击效果,获得更好的用户 体验
各种TextView的文字显示效果,真心好用,调整文字大 小 粗 颜色 下划线 角标 超链接等等,很实用。
Android自定义TextView实现动态的文字效果
Android TextView 文字片点击特效、点击事件监听实现了TextView 文字片段 点击_长按 事件监听 以及点击特效关键技术 在自定义Span中对TextPaint的color、bgcolor等属性设置选中时的文字颜色,背景色、 在自定义...
实现textView 跑马灯效果
旋转TextView文字显示方向,学习一下。
仿淘宝头条资讯滚动,TextView上下滚动效果,eclipse项目
end是结束位置,所有处理的文字,包含开始位置,但不包含结束位置。 本例子演示了给TextView中的字体设置:百度超链接,电话, 邮件, 短信, 彩信, 地图, 背景色, 前景色, 正常、 粗体、 斜体、 粗斜体、...
android中TextView控件的一些常用效果:HTML设置样式、TextView点击事件,TextView跑马灯效果,TextView显示图片效果。
主要介绍了Android实现在TextView文字过长时省略部分或滚动显示的方法,结合实例形式分析了Android中TextView控件文字显示及滚动效果相关操作技巧,需要的朋友可以参考下