编译工具:Eclipse
直接用例子说话例子项目的结构
布局结构图
页面布局代码
这个布局的关键在于
页面代码的结构图
页面代码如下public class MainActivity extends Activity implements OnClickListener {private static final int VIDEO_CONTENT_DESC_MAX_LINE = 3;// 默认展示最大行数3行 private static final int SHOW_CONTENT_NONE_STATE = 0;// 扩充 private static final int SHRINK_UP_STATE = 1;// 收起状态 private static final int SPREAD_STATE = 2;// 展开状态 private static int mState = SHRINK_UP_STATE;//默认收起状态private TextView mContentText;// 展示文本内容 private RelativeLayout mShowMore;// 展示更多 private ImageView mImageSpread;// 展开 private ImageView mImageShrinkUp;// 收起 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); }private void initView() { mContentText = (TextView) findViewById(R.id.text_content); mShowMore = (RelativeLayout) findViewById(R.id.show_more); mImageSpread = (ImageView) findViewById(R.id.spread); mImageShrinkUp = (ImageView) findViewById(R.id.shrink_up); mShowMore.setOnClickListener(this); }private void initData() { mContentText.setText(R.string.txt_info); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.show_more: { if (mState == SPREAD_STATE) { mContentText.setMaxLines(VIDEO_CONTENT_DESC_MAX_LINE); mContentText.requestLayout(); mImageShrinkUp.setVisibility(View.GONE); mImageSpread.setVisibility(View.VISIBLE); mState = SHRINK_UP_STATE; } else if (mState == SHRINK_UP_STATE) { mContentText.setMaxLines(Integer.MAX_VALUE); mContentText.requestLayout(); mImageShrinkUp.setVisibility(View.VISIBLE); mImageSpread.setVisibility(View.GONE); mState = SPREAD_STATE; } break; } default: { break; } } }}
关键代码最关键的代码是这一句mContentText.setMaxLines(Integer.MAX_VALUE);Integer.MAX_VALUE(广义的整数最大值,表示行高撑到最大)
本步骤需要一定代码基础
程序代码以代码片段的形式展示