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;
/**
* 放大文本
*
* @author zhongwr
*
*/
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 获取状态栏高度
* @author zhongwr
* @params
* @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;
/**
* 双击放大文本监听器
*
* @author zhongwr
*
*/
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();
}
}
放大字体demo: http://download.csdn.net/detail/zhongwn/9418678