android之仿微信雙擊放大字型及滑動衝突,文本顯示不全,android放大字型

來源:互聯網
上載者:User

android之仿雙擊放大字型及滑動衝突,文本顯示不全,android放大字型

xml:在scrollview中要使用Android:fillViewport="true" ,否則由於scrollview嵌套的布局使用了gravity="ceter"會出現文本顯示不全以及底部還有很大的空白

<?xml version="1.0" encoding="UTF-8"?>  <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="match_parent"      android:layout_height="match_parent"      android:background="@color/white" >        <ScrollView          android:layout_width="match_parent"          android:layout_height="match_parent"          android:fillViewport="true" >            <RelativeLayout              android:layout_width="match_parent"              android:layout_height="wrap_content"               >                <TextView                  android:id="@+id/tv_big_text"                  android:layout_width="match_parent"                  android:layout_height="wrap_content"                  android:layout_gravity="center_vertical"                  android:layout_marginBottom="15dp"                  android:layout_marginLeft="15dp"                  android:layout_marginRight="15dp"                  android:layout_marginTop="15dp"                  android:gravity="left|center"                  android:lineSpacingExtra="5dp"                  android:minHeight="500dp"                  android:text="大師法第三方"                  android:textColor="@color/gray_3"                  android:textStyle="bold" />          </RelativeLayout>      </ScrollView>    </FrameLayout>  

Java:雙擊放大

package com.wangzhi.MaMaHelp;    import android.app.Dialog;  import android.content.Context;  import android.content.Intent;  import android.graphics.Point;  import android.os.Bundle;  import android.text.method.ScrollingMovementMethod;  import android.util.TypedValue;  import android.view.Gravity;  import android.view.LayoutInflater;  import android.view.View;  import android.view.View.OnClickListener;  import android.view.WindowManager;  import android.widget.FrameLayout;  import android.widget.TextView;    /**  * 放大文本   *   */  public class BigTextActivity extends BaseActivity {        /***      *       * @description 啟動當前act      * @author zhongwr      * @param content      *            放大文本      * @param contentSize      *            放大字型      */      public static void startBigTextAct(Context context, String content, int contentSize) {          if (null != context && !Tools.isEmpty(content)) {              Intent intent = new Intent(context, BigTextActivity.class);              intent.putExtra("content", content);              intent.putExtra("contentSize", contentSize);              context.startActivity(intent);          }      }        private String content;      private TextView tvBigText;      private int contetnSize;        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.big_text_act);          initViews();          initListener();          initData(savedInstanceState);      }        /**      * 初始化View      */      @Override      protected void initViews() {          tvBigText = (TextView) findViewById(R.id.tv_big_text);      }        private void initData(Bundle savedInstanceState) {          Intent intent = getIntent();          content = (String) intent.getStringExtra("content");          contetnSize = (int) intent.getIntExtra("contentSize", 16);          tvBigText.setTextSize(TypedValue.COMPLEX_UNIT_SP, contetnSize);          tvBigText.setMinHeight(mScreenHeight - Tools.dip2px(this, 15) - Tools.getStatusBarHeight(this));          setEmojiTextView(tvBigText, content);      }        private void initListener() {          tvBigText.setOnClickListener(this);      }        @Override      public void onClick(View v) {          switch (v.getId()) {          case R.id.tv_big_text:              finish();              break;            default:              break;          }      }    }  

 

/**   *    * @description 擷取狀態列高度   * @return 返回狀態列高度   * @update 2016年1月25日 下午8:53:31 */  public static int getStatusBarHeight(Context context) {          if (statusBarHeight <= 0) {              Rect frame = new Rect();              ((Activity) context).getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);              statusBarHeight = frame.top;          }          if (statusBarHeight <= 0) {              try {                  Class<?> c = Class.forName("com.android.internal.R$dimen");                  Object obj = c.newInstance();                  Field field = c.getField("status_bar_height");                  int x = Integer.parseInt(field.get(obj).toString());                  statusBarHeight = context.getResources().getDimensionPixelSize(x);                } catch (Exception e1) {                  e1.printStackTrace();              }          }          return statusBarHeight;      }  

  

public static int dip2px(Context context, float dipValue) {          return (int) (dipValue * density + 0.5f);  }  

  

雙擊

import android.content.Context;  import android.view.View;  import android.view.View.OnClickListener;    /**  * 雙擊放大文本監聽器    */  public class BigTextDoubleClickListener implements OnClickListener {      private long lastClickTime;      private Context mContext;      /** 雙擊要放大字型的內容 */      private String content;        public BigTextDoubleClickListener(Context mContext, String content) {          this.content = content;          this.mContext = mContext;      }        @Override      public void onClick(View v) {          // 雙擊          if (System.currentTimeMillis() - lastClickTime <= 1000) {// 雙擊“兩次點擊間隔小於一秒              // 跳轉到放大字型              BigTextActivity.startBigTextAct(mContext, content, 20);          }          lastClickTime = System.currentTimeMillis();      }  }  

  

  

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.