andriod 动态设置TextView 和 RelativeLayou 高度
XML布局
<RelativeLayout
android:id="@+id/rlay_meeting_contact_context"
android:layout_width="match_parent"
android:layout_height="44dp"
android:clickable="false"
android:focusable="false" > <TextView
android:id="@+id/tv_test"
style="@style/B4_Font_white"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/TextView07"
android:duplicateParentState="true"
android:gravity="left|center"
android:singleLine="true"
android:text="@string/accept_invite_this_troop" /> </RelativeLayout>
注:android:gravity="left|center"//表示文本从左的中间开始,不然展开后文本会在中显开始显示
JAVA
定义:
private int mContextHeght = 0;
private Boolean mLookContextflag = false;
private RelativeLayout mrlayMeetingContactContext;
mrlayMeetingContactContext = (RelativeLayout) findViewById(R.id.rlay_meeting_contact_context);
private TextView mtvTest; mtvTest= (TextView) findViewById(R.id.tv_test);
利用timer计时器获取:LineCount
注:getLineCount注意:需要待对象展开后才能正确获取,不然获取到的是0
TimerTask task = new TimerTask() {
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
android.util.Log.e("Timer", "Timer");
update();
break;
}
super.handleMessage(msg);
}
};
private void update() {
int linecount = mtvTest.getLineCount();
Log.i("tv.getLineCount()", mtvTest.getHeight() + "");
if ((!mLookContextflag) || (linecount < 2)) {
mLookContextflag = true;
mtvTest.setEllipsize(null); // 展开
mtvTest.setSingleLine(false);
} else if ((mLookContextflag) || (linecount > 1)) {
mLookContextflag = false;
if (mtvTestt.getLineCount() > 1) {
int iHeght = mtvTest.getLineCount()
* mtvTest.getLineHeight();
if (iHeght > mContextHeght) {
android.view.ViewGroup.LayoutParams pp = mrlayMeetingContactContext
.getLayoutParams();
pp.height = iHeght;
mrlayMeetingContactContext.setLayoutParams(pp);
mMeetingContactContext.setHeight(iHeght);
//timer用完结束掉
if (mTimer != null) {
mTimer.cancel();
mTimer = null;
}
}
}
}
调用:
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.meeting_contact_context:
if (mContextHeght == 0) {
mContextHeght = mrlayMeetingContactContext.getHeight();
if (mTimer == null) {
mTimer = new Timer(false);
mTimer.schedule(task, 10, 100);
}
}
}
andriod 动态设置TextView 和 RelativeLayou 高度的更多相关文章
- android 动态设置TextView值,例:金额添加
一说到动态递增设置TextView值,非常多人应该立即就想到起个线程,让后在线程中睡眠指定时间,使用handler发送消息更新TextView值! 这样是实现了动态递增设置TextView值可是效率不 ...
- android 动态设置TextView值,例:金额增加
一说到动态递增设置TextView值,很多人应该马上就想到起个线程,让后在线程中睡眠指定时间,使用handler发送消息更新TextView值! 这样是实现了动态递增设置TextView值但是效率不咋 ...
- Android 动态设置TextView的drawableLeft等属性
首先,我们在开发过程中,会经常使用到android:drawableLeft="@drawable/ic_launcher"这些类似的属性: 关于这些属性的意思,无非是在你的tex ...
- android 动态设置控件宽高度
Android 代码里直接使用 setWidth() 和 setHeight()设置宽高度是没用的. 解决办法是 改用setLayoutParams()方法 如设置宽高内容自适应: setLayout ...
- 在Activity中动态设置TextView的隐藏属性
if (true) { //显示 viewHolder.tvLine.setVisibility(View.INVISIBLE);} else { //不显示 viewHolder.tvLine.se ...
- 动态设置WX滚动条的高度(非常重要)
wxml: <scroll-view class="scroll" scroll-y="true" style="height:{{client ...
- 实现ScrollView中包含ListView,动态设置ListView的高度
ScrollView 中包含 ListView 的问题 : ScrollView和ListView会冲突,会导致ListView显示不全 <?xml version="1.0" ...
- 【原创】如何在Android中为TextView动态设置drawableLeft等
如何在Android中为TextView动态设置drawableLeft等 两种方式: 方式1:手动设置固有边界 Drawable drawable = getResources().getD ...
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性加入图标
注:(图中每个条目和图标都是由代码动态生成) 代码动态布局,并须要为每个条目设置图标,此时用到了 android:drawableLeft="@drawable/icon" 父x ...
随机推荐
- 【原创】SQLServer将数据导出为SQL脚本的方法
最近很多同学问到一个问题,如何将MSSQLServer的数据库以及里面的数据导出为SQL脚本,主要问的是MSSQLServer2000和2005,因为2008的管理器已经有了这个功能,2000和200 ...
- GJM :Unity 使用SqlServer数据库 [原创]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创 ,未经作者同意必须保留此段声明! ...
- java多线程-同步块
Java 同步块(synchronized block)用来标记方法或者代码块是同步的.Java 同步块用来避免竞争.本文介绍以下内容: Java 同步关键字(synchronzied) 实例方法同步 ...
- 对jQuery选择器的总结
jQuery基础选择器 $("div*")获取div下面的所有元素 $(".red,.green").html("怎么") // 需要注意的 ...
- Devrama Slider - 支持任意 HTML 的内容滑块
Devrama Slider 是一个图片滑块,支持很多特色功能.除了支持图片滑动,其它的 HTML 内容也支持.主要特色:响应式.图片预加载.图片延迟加载.进度条.自定义导航栏和控制按钮等等. 在线演 ...
- io.js - 兼容 NPM 平台的 Node.js 新分支
io.js(JavaScript I/O)是兼容 NPM 平台的 Node.js 新分支,由 Node.js 的核心开发者在 Node.js 的基础上,引入更多的 ES6 特性,它的目的是提供更快的和 ...
- JS的window.location应用实例
window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面. Window Locationwindow.location 对象在编写时可不使用 window ...
- JavaScript语言精粹学习笔记
0.JavaScript的简单数据类型包括数字.字符创.布尔值(true/false).null和undefined值,其它值都是对象. 1.JavaScript只有一个数字类型,它在内部被表示为64 ...
- iOS 使用AFNetworking遇到错误 Request failed: unacceptable content-type: text/html
错误日志: Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacc ...
- SharePoint 2013 初始化Ribbon选中Tab
SharePoint使用中,经常打开页面会有默认展开的Ribbon选项,有时这又不是我们需要的,所以我们就需要默认选中的项目,下面简单介绍下如何实现. 方法一 1.Dispform.aspx页面默认R ...