• 可收缩的TextView


    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin" >
    
        <!-- android 简单的两步实现Play上的文本伸缩功能 -->
        <!-- http://www.cnblogs.com/TerryBlog/archive/2013/03/12/2956165.html -->
        <FrameLayout
            android:id="@+id/expandable_container"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_marginBottom="@dimen/linear_margin_bigger" >
    
            <TextView
                android:id="@+id/expandable_text"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:clickable="true"
                android:ellipsize="end"
                android:text="@string/loremipsum" />
        </FrameLayout>
    
        <!-- my method -->
        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
    
            <TextView
                android:id="@+id/myexpandable_text"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:maxLines="3"
                android:clickable="true"
                android:ellipsize="end"
                android:text="@string/loremipsum" />
        </FrameLayout>
    
    </LinearLayout>
    package com.lxh.textview;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.view.ViewGroup.LayoutParams;
    import android.widget.TextView;
    
    import com.example.com.lxh.pro1.R;
    
    /**
     * android 简单的两步实现Play上的文本伸缩功能
     * http://www.cnblogs.com/TerryBlog/archive/2013/03/12/2956165.html
     * @author lxh
     */
    public class ExpandableTV extends Activity {
        // -------------------------- Terry's method --------------------------
        private boolean isExpanded = false, myIsExpanded = false;
        private int lastHeight = 0;
        private ViewGroup expandableContainer;
        private TextView textView, myTextView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_expandable_tv);
            expandableContainer = (ViewGroup) findViewById(R.id.expandable_container);
            textView = (TextView) findViewById(R.id.expandable_text);
            textView.setOnClickListener(terryClickListener);
            myTextView = (TextView) findViewById(R.id.myexpandable_text);
            myTextView.setOnClickListener(myClickListener);
        }
        
        private OnClickListener terryClickListener = new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isExpanded) {
                    LayoutParams params = (LayoutParams) expandableContainer.getLayoutParams();
                    params.height = lastHeight;
                    expandableContainer.setLayoutParams(params);
                    expandableContainer.invalidate(); //调用OnDraw方法
                } else {
                    lastHeight = expandableContainer.getHeight();
                    LayoutParams params = (LayoutParams) expandableContainer.getLayoutParams();
                    params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
                    expandableContainer.setLayoutParams(params);
                    expandableContainer.invalidate(); //调用OnDraw方法
                }
                isExpanded = !isExpanded;
            }
        };
        //Terry总结:此方法缺陷,当给出最大高度不合适时,字会显示一半高度
    
        // -------------------------- my method --------------------------
        private OnClickListener myClickListener = new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (myIsExpanded) {
                    myTextView.setMaxLines(3);
                    expandableContainer.invalidate(); //调用OnDraw方法
                } else {
                    myTextView.setMaxLines(Integer.MAX_VALUE);
                    expandableContainer.invalidate(); //调用OnDraw方法
                }
                myIsExpanded = !myIsExpanded;
            }
        };
        //Me总结:此方法不存在Terry的问题
    }
  • 相关阅读:
    【CTF WEB】函数绕过
    【CTF WEB】命令执行
    【CTF WEB】文件包含
    【CTF WEB】GCTF-2017读文件
    【技巧总结】Penetration Test Engineer[5]-Operating System Security(SQL Server、MySQL提权)
    【技巧总结】Penetration Test Engineer[4]-Web-Security(文件处理、会话管理、访问控制、SSRF、反序列化漏洞)
    【技巧总结】Penetration Test Engineer[3]-Web-Security(SQL注入、XXS、代码注入、命令执行、变量覆盖、XSS)
    【技巧总结】Penetration Test Engineer[2]-Information gathering
    【技巧总结】Penetration Test Engineer[1]-Basic
    【 Linux 】单台服务器上并发TCP连接数
  • 原文地址:https://www.cnblogs.com/qq278360339/p/4010787.html
Copyright © 2020-2023  润新知