2014-10-20 96 views
-1

我正在编写书籍应用程序。我想在我的文本文件上添加缩放功能。在这里我的代码:从资源文件中放大文本文件中的“TextView”

XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ScrollView 
     android:id="@+id/ScrollView01" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" > 

     <TextView 
      android:id="@+id/textview_data" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="Naruto" 
      android:textSize="25dp" /> 
    </ScrollView> 

</LinearLayout> 

在MainActivity我申请一些MapView的缩放方法来解决这个问题,但这些方法并没有太大帮助。

package com.example.readtextfiles; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.widget.TextView; 

public class ReadTextFileActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     TextView textView = (TextView)findViewById(R.id.textview_data); 


     String data = readTextFile(this, R.raw.books); 
     textView.setText(data); 

       } 

    public static String readTextFile(Context ctx, int resId) 
    { 
     InputStream inputStream = ctx.getResources().openRawResource(resId); 

     InputStreamReader inputreader = new InputStreamReader(inputStream); 
     BufferedReader bufferedreader = new BufferedReader(inputreader); 
     String line; 
     StringBuilder stringBuilder = new StringBuilder(); 
     try 
     { 
      while ((line = bufferedreader.readLine()) != null) 
      { 
       stringBuilder.append(line); 
       stringBuilder.append('\n'); 
      } 
     } 
     catch (IOException e) 
     { 
      return null; 
     } 
     return stringBuilder.toString(); 
    } 
} 

请提出一些帮助,

+0

可能重复([如何放大Android的一个TextView?] http://stackoverflow.com/questions/10239891/how-to-zoom-a-textview-in-android) – karvoynistas 2014-10-20 12:36:36

回答

0

只需添加两个按钮:加号和减号

加:

count = count +1; 

减:

count = count -1; 

    textView.setTextSize(count); 
0

您可以使用此代码捏在Android的放大了的TextView://将这些XML(布局)文件:

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/mytv" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:text=" 
      This is my sample text for pinch zoom demo, you can zoom in and out using pinch zoom, thanks 
      This is my sample text for pinch zoom demo, you can zoom in and out using pinch zoom, thanks 
      This is my sample text for pinch zoom demo, you can zoom in and out using pinch zoom, thanks 
      This is my sample text for pinch zoom demo, you can zoom in and out using pinch zoom, thanks 
      This is my sample text for pinch zoom demo, you can zoom in and out using pinch zoom, thanks 
      This is my sample text for pinch zoom demo, you can zoom in and out using pinch zoom, thanks 

      This is my sample text for pinch zoom demo, you can zoom in and out using pinch zoom, thanks 
      This is my sample text for pinch zoom demo, you can zoom in and out using pinch zoom, thanks 
      This is my sample text for pinch zoom demo, you can zoom in and out using pinch zoom, thanks 
      This is my sample text for pinch zoom demo, you can zoom in and out using pinch zoom, thanks 
      This is my sample text for pinch zoom demo, you can zoom in and out using pinch zoom, thanks 
      This is my sample text for pinch zoom demo, you can zoom in and out using pinch zoom, thanks 
      " /> 

    </RelativeLayout> 

,并使用这个类PinchZoomOnTextview,

public class MyTextViewPinchZoomClass extends Activity implements OnTouchListener { 

    final static float STEP = 200; 
    TextView mytv; 
    float mRatio = 1.0f; 
    int mBaseDist; 
    float mBaseRatio; 
    float fontsize = 13; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.layout_file_name_here); 

     mytv = (TextView) findViewById(R.id.mytv); 
     mytv.setTextSize(mRatio + 13); 
    } 

    public boolean onTouchEvent(MotionEvent event) { 
     if (event.getPointerCount() == 2) { 
      int action = event.getAction(); 
      int pureaction = action & MotionEvent.ACTION_MASK; 
      if (pureaction == MotionEvent.ACTION_POINTER_DOWN) { 
       mBaseDist = getDistance(event); 
       mBaseRatio = mRatio; 
      } else { 
       float delta = (getDistance(event) - mBaseDist)/STEP; 
       float multi = (float) Math.pow(2, delta); 
       mRatio = Math.min(1024.0f, Math.max(0.1f, mBaseRatio * multi)); 
       mytv.setTextSize(mRatio + 13); 
      } 
     } 
     return true; 
    } 

    int getDistance(MotionEvent event) { 
     int dx = (int) (event.getX(0) - event.getX(1)); 
     int dy = (int) (event.getY(0) - event.getY(1)); 
     return (int) (Math.sqrt(dx * dx + dy * dy)); 
    } 

    public boolean onTouch(View v, MotionEvent event) { 
     return false; 
    } 
} 
+0

谢谢,但我想从我的资源文件夹的文本文件应用缩放。我在这里问了问题之前试过了,但没有帮助。 – 2014-10-20 12:49:32