您需要使用动画。下面是用于向上/向下滑动动画的代码
btn.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0) {
isOpen=!isOpen;
if(isOpen)
{ //
lin1.getLayoutParams().height=actualHeight;
btn.setBackgroundResource(R.drawable.header_uparrow);
}
else
btn.setBackgroundResource(R.drawable.header_downarrow);
ani a=new ani();
a.setDuration(2000);
lin1.startAnimation(a);
}
//}
});
class ani extends Animation
{
public ani()
{
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
int newHeight;
if(isOpen)
newHeight = (int)(initialHeight * interpolatedTime);
else
newHeight = (int)(initialHeight * (1-interpolatedTime));
lin1.getLayoutParams().height = newHeight;
lin1.requestLayout();
}
@Override
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
initialHeight = actualHeight;
}
@Override
public boolean willChangeBounds() {
return true;
}
};