위챗 채팅 페이지 더블 클릭 텍스트 확대

4638 단어
MainActivity의 코드
 package com.example.activity;
import com.example.watchheadimage.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity {
 private TextView textView;
 private int count = 0;
 private int firClick = 0;
 private int secClick = 0;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  initView();
 }
 private void initView() {
  textView = (TextView) findViewById(R.id.textView);
  registerView();
 }
 private void registerView() {
  textView.setOnTouchListener(new OnTouchListener() {
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    showText(textView.getText().toString());
    return false;
   }
  });
 }
 private void showText(String text) {
  count++;
  if (count == 1) {
   firClick = (int) System.currentTimeMillis();
  } else if (count == 2) {
   secClick = (int) System.currentTimeMillis();
   if (secClick - firClick < 500) {
    //     
    TextMagnifyLoadingDialog dialog = new TextMagnifyLoadingDialog(
      MainActivity.this, text);
    dialog.show();
   }
   count = 0;
   firClick = 0;
   secClick = 0;
  }
 }
}

dialog의 코드 사용자 정의
package com.example.activity;
import com.example.watchheadimage.R;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
/**
 *       
 */
public class TextMagnifyLoadingDialog extends Dialog {
 private TextView textView;//     
 private RelativeLayout layout;
 private String text;
 public TextMagnifyLoadingDialog(Context context, String text) {
  super(context, R.style.magnifyDialogStyle);
  this.text = text;
 }
 protected TextMagnifyLoadingDialog(Context context, boolean cancelable,
   OnCancelListener cancelListener, String text) {
  super(context, cancelable, cancelListener);
  this.text = text;
 }
 public TextMagnifyLoadingDialog(Context context, int theme, String text) {
  super(context, theme);
  this.text = text;
 }
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.dialog_magnify);
  textView = (TextView) findViewById(R.id.tv_dialog_magnify);
  layout = (RelativeLayout) findViewById(R.id.rl_dialog_magnify);
  layout.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    dismiss();
   }
  });
  textView.setText(text);
 }
}

main.xml 코드
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:orientation="vertical">
    <TextView
        android:id="@+id/textView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:layout_marginTop="100dp"
        android:text="  "/>
</LinearLayout>

dialog_magnify.xml 코드
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rl_dialog_magnify"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/tv_dialog_magnify"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_gravity="center"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:gravity="center"
        android:textColor="#000000"
        android:textSize="30sp" />
</RelativeLayout>

마지막으로 스타일즈에 이 글을 쓰는 거 잊지 마세요.
<style name="magnifyDialogStyle" parent="@android:style/Theme.Light.NoTitleBar">
        <item name="android:windowBackground">@android:color/white</item>
        <item name="android:windowNoTitle">true</item>
    </style>

좋은 웹페이지 즐겨찾기