左右TextView旋转门问题
最近由于旋转门问题的一个客户找我,当在字符25更多的时候是不是走了,后来,我在重现的问题,发现问题如下面:
问题1.人物25几个月之内可以去。
问题2.在人物25个月,虽然比屏幕宽度,不去
问题3.屏幕宽度能够走的。
查看各种资料。发现例如以下原因导致。但无法解释问题1.
显示跑马灯效果的前提条件就是你的文本内容要比显示文本的外部组件长,即外部组件无法完整的显示内部的文本内容。
因此要实现跑马灯效果有两种设置方式:
1、layout_width=”"设置为成比文本内容短的固定值。最好不要写成wrap_content或者fill_parent。
2、假设layout_width=”"设置wrap_content或者fill_parent,那么能够添加上 android:paddingLeft="15dip",android:paddingRight="15dip"使两端的距离加大而无法所有显示文本内容。可是这有一个缺陷就是在手机的屏幕变大时。距离没有变大,外部组件又能够正常显示内部文本。于是又无法显示跑马灯效果,因此建议第一种设置为佳。
修正代码例如以下:
if(wm !=null && mMainPanel != null){
try {
wm.removeView(mMainPanel);
wm = null;
mMainPanel = null;
} catch (Exception e) {
e.printStackTrace();
}
}
wm = (WindowManager)context.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
//设置窗体布局居于全部之上
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
//使窗体失去焦点
params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
//背景透明
params.format = PixelFormat.RGBA_8888;
params.alpha = 0.7f;//透明度
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.x = 0;
params.gravity = Gravity.TOP | Gravity.FILL_HORIZONTAL;
isNeedShow = true;
mMainPanel = (LinearLayout) inflater.inflate(R.layout.notify_message_bottom, null);
mLinearLayout = (LinearLayout)mMainPanel.findViewById(R.id.no_button_layout);
mLinearLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
cancelDialog();
}
});
titleText = (TextView) mMainPanel.findViewById(R.id.bottem_text);
DisplayMetrics dm = new DisplayMetrics();
dm = context.getResources().getDisplayMetrics();
// titleText.setWidth(dm.widthPixels);
titleText.setMarqueeRepeatLimit(-1);
//次数减一才是真正的次数
Log.d(TAG, "scrollCount: "+(scrollCount-1));
// titleText.setMarqueeRepeatLimit(scrollCount-1);
String content = mArgs.getTitle()+":"+mArgs.getContent();
TextPaint paint = titleText.getPaint();
float len = paint.measureText(content);
//1280
Log.d(TAG, "len: "+len+" ,dm.widthPixels: "+dm.widthPixels);
for (int i = 0; (len < dm.widthPixels); i++) {
len = paint.measureText(content);
content = content + " ";
}
//tcl对接加入了这个。设置长度必须短于文本,否则不滚动。
1288
Log.d(TAG, "content: "+content);
Log.d(TAG, "new content: "+paint.measureText(content));
titleText.setWidth((int)paint.measureText(content)-50);
titleText.setText(content);
// titleText.setMovementMethod(ScrollingMovementMethod.getInstance());
wm.addView(mMainPanel, params);//加入到系统窗体中
版权声明:本文博主原创文章。博客,未经同意不得转载。
左右TextView旋转门问题的更多相关文章
- 关于textview显示特殊符号居中的问题
话说这是2017年的第一篇博客,也是一篇技术博客.先从简单的一篇解决问题开始吧,千里之行,始于足下! ------------------------------------------------- ...
- 奇葩问题-TextView无法获取值
问题场景 前几天写一个界面的时候,遇到一个非常奇葩的问题.app第一次安装的时候,这里针对用户第一次安装的时候,后来是不会出现这个问题了.我明明是对某个界面的一个textview赋值了,而且服务端也返 ...
- 动态给textView加图片
Drawable img = layout.getResources().getDrawable(R.drawable.icon); // 调用setCompoundDrawables时,必须调用Dr ...
- TextView使用大全
最近打算写一个系列的android初级开发教程,预计40篇以上的文章,结合我实际工作中的经验,写一些工作中经常用到的技术,让初学者可以少走弯路,写一个系列的话,大家学习起来也有头有尾. 今天就从我们每 ...
- TextField和TextView的限制输入长度
TextField的限制代理方法 只需要在这个代理方法里面code这样的代码就可以了 16 是长度可以自己设置 - (BOOL)textField:(UITextField *)textField s ...
- RAC textView的双向绑定
今天在写关于textView的数据绑定时原先写法是这样的: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #78 ...
- android textview 自动换行 整齐排版
一.问题在哪里? textview显示长文字时会进行自动折行,如果遇到一些特殊情况,自动折行会杯具成这个样子: 上述特殊情况包括: 1)全角/半角符号混排(一般是数字.字母.汉字混排) 2)全角/半角 ...
- textView的提醒文字
如果我们想提交一些备注信息,会想到用textFiled和textView两种控件去实现 1.提醒文字是textFiled的特有属性,但是textFiled显示文本只有一行,不能实现我们输入较多文字的情 ...
- 布局TextView和EditText区别,layout_width和lay_weight区别--Android Studio
1. TextView控件是文本表示控件,主要功能是向用户展示文本的内容,它是不可编辑的,如设置标题:EditText控件是编辑文本控件,主要功能是让用户输入文本的内容,它是可以编辑的.每一个控件都有 ...
随机推荐
- <customErrors>节点说明1
<customErrors>节点用于定义一些自定义错误信息的信息.此节点有Mode和defaultRedirect两个属性, 其中defaultRedirect属性是一个可选属性,表示应用 ...
- iOS 网络与多线程--5.异步Post方式的网络请求(非阻塞)
通过Post请求方式,异步获取网络数据,异步请求不会阻塞主线程,而会建立一个新的线程来操作. 代码如下 ViewController.h文件 #import <UIKit/UIKit.h> ...
- print流
PrintWriter和PrintStream都属于输出流,分别针对字符和字节. PrintWriter和PrintStream提供了重载的print,println方法用于多种类型的输出 Print ...
- swing常用布局
1,FlowLayout 窗口的默认布局 设置窗口布局方法(下面不重复 setLayout(new FlowLayout()); 设置容器布局方法 比如容器 con1 con1.setLayout(n ...
- C++ Primer 5th 第9章 顺序容器
练习9.1:对于下面的程序任务,vector.deque和list哪种容器最为适合?解释你的选择的理由.如果没有哪一种容器优于其他容器,也请解释理由.(a) 读取固定数量的单词,将它们按字典序插入到容 ...
- Nginx源码研究三:Epoll在NGINX中的使用
Web服务器在面对高并发的情况下,网络的IO一般选择IO复用,像apache选择的Select/poll.Nginx在linux 2.6后选择Epoll做网路IO,提高了WEB服务的并发能力. 在本章 ...
- Python操作excel(xlrd和xlwt)
Python操作excel表格有很多支持的库,例如:xlrd.xlwt.openpyxl.win32com,下面介绍使用xlrd.xlwt和xlutils模块这三个库不需要其他的支持,在任何操作系统上 ...
- 文件头 MAGE_FILE_HEADER
IMAGE_FILE_HEADER这个结构的定义如下: typedef struct _IMAGE_FILE_HEADER { 00h WORD Machine; //运行平台 02h WORD Nu ...
- d023: 各位数字之和
内容: 求输入的一个整数的各位数字之和 输入说明: 一行一个整数 输出说明: 一个整数 输入样例: 2147483646 输出样例 : 45 #include <stdio.h> int ...
- app 测试点
以下所有测试最后必须在真机上完整的执行1.安装.卸载测试 在真机上的以及通过91等第三方的安装与卸载 安装在手机上还是sd卡上 2.启动app测试3.升级测试 数字签名.升级覆盖安装.下载后手动覆盖安 ...