Android之View提升:一 以折叠方式实现隐藏或显示TextView
实现方法:通过在Animation的applyTransformation(float interpolatedTime, Transformation t)方法中根据interpolatedTime参数的变化设置TextView的height属性值,从而实现以动态展开或隐藏TextView控件的动画效果。
实现效果:
关键代码实现:
- 向下箭头2秒内实现180度旋转
public class MainActivity extends AppCompatActivity {
private TextView myTextView;
private ImageView myImageView;
int maxLine = 0;
boolean isExpand;
String content="\t\t你在寻找SFD的含义吗?在下图中,您可以看到SFD的主要定义。 如果需要,您还可以下载要打印的图像文件,或者您可以通过Facebook,Twitter,Pinterest,Google等与您的朋友分享。要查看SFD的所有含义,请向下滚动。 完整的定义列表按字母顺序显示在下表中。";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myTextView = (TextView)findViewById(R.id.textview);
myImageView = (ImageView)findViewById(R.id.imageview);
myTextView.setText(content);
myTextView.setHeight(myTextView.getLineHeight()*maxLine);
myTextView.post(new Runnable() {
@Override
public void run() {
myImageView.setVisibility(myTextView.getLineCount()>maxLine? View.VISIBLE:View.GONE);
}
});
myImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isExpand = ! isExpand;
myTextView.clearAnimation();
final int myHeight;
final int startHeight=myTextView.getHeight();
int myDurationTime=2000;
if(isExpand)