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 ...
随机推荐
- Yii2.0学习笔记:创建登录表单
第一步:在model层创建一个EntryForm.php文件 复制以下代码,注意model的文件.方法.类的命名规范(大小写) <?php namespace app\models; use Y ...
- TestNG官方文档中文版(5)-测试方法/类和组
5 - Test methods, Test classes and Test groups 5.1 - Test groups TestNG容许执行复杂的测试方法分组.不仅可以申明方法属于组,而且可 ...
- 每天一命令 git stash
git stash 命令是用于保存当前进度的命令.该命令会保存当前工作区的改动.保存的改动是已经跟踪的文件的改动,对于未跟踪的改动stash是不会保存的. git stash 命令常用于分支切换的 ...
- 原博客地址http://blog.chinaunix.net/uid/20656672.html弃用
原博客地址http://blog.chinaunix.net/uid/20656672.html弃用
- 【GOF23设计模式】观察者模式
来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_观察者模式.广播机制.消息订阅.网络游戏对战原理 package com.test.observer; import ja ...
- 《javascript权威指南》读书笔记(连载)
这是一篇很长的博客 终于把权威指南给买回来了,之前一直犹豫,第一:书太厚,怕买了不能坚持看完.第二:觉得太贵,最少100¥.现在实习也能发点工资了,给自己定了一个志愿:把一个月的工资用于买书.这么一想 ...
- web基础
1.认识webapp程序? 请求方式不同:基于事件触发------基于http协议下的http请求和http响应.点击百度一下-----发送了请求:不仅会携带问题,ip地址,主机号.请求是客户 ...
- AE选中要素
private void 选中要素ToolStripMenuItem_Click(object sender, EventArgs e) { if(axMapControl2.LayerCount&l ...
- Ridge Regression(岭回归)
Ridge Regression岭回归 数值计算方法的"稳定性"是指在计算过程中舍入误差是可以控制的. 对于有些矩阵,矩阵中某个元素的一个很小的变动,会引起最后计算结果误差很大,这 ...
- Linux机器24项安全合规设置
工作的一些内容,这是中国移动集团当前linux机器安全合规标准,找了点时间将其归类,并查了一些资料,每项配置是什么意思,不仅要知其然,还要知其所以然.好记性不如烂笔头. 1. 检查FTP配置-限制用 ...