【发布时间】:2015-03-13 02:50:55
【问题描述】:
有人可以发布一个简单的示例,说明如何将高度从 0dp 增长到动态值的 TextView 设置动画?
我想增加文本视图的高度,但允许用户像动画一样看到它。唯一的条件是我知道我的最大高度是可变的,并且在运行时不知道。我想允许的最大值是 100dp。
我尝试过执行一个简单的 for 循环,例如:
runOnUiThread(new Runnable() {
public void run() {
LayoutParams params = myTextView.getLayoutParams();
int myMaxHeightValue = 100;
for (int x=0; x<myMaxHeightValue; x++) {
params.height = getDensityPixels(x);
myTextView.setLayoutParams(params);
Thread.Sleep(300);
}
}
});
public void getDensityPixels(int value) {
float density = getResources().getDisplayMetrics.display;
return (int) (value * density + 0.5f);
}
谁能提供一个简单的例子,我可以提供 MAX 高度并观察 textview 从 0dp 高度增长到 MAX dp 高度?当我使用上面的代码时,它确实增加到了 100dp 的最大高度,但是屏幕在调整大小时锁定,而不是在它发生时向我显示增加。
非常感谢任何帮助!
【问题讨论】:
-
向我解释为什么投反对票?现在不赞成提出问题?
-
试试这个:stackoverflow.com/a/6027569/4224337,否则你可能需要创建一个自定义的 TextView 类并使用 onMeasure() 方法
-
您在工作时阻塞了 UI 线程,因此屏幕冻结。尝试在
AsyncTask中工作并从onProgressUpdate方法更新 UI。
标签: android android-layout android-animation textview