2012-05-10 168 views
2

我试图创建一个显示歌词为用户的应用程序。歌词存储在values/strings.xml中,并在访问活动时显示给用户。 (我不确定这是否是一种很好的方法)。捏缩放,TextView的

根据文本的每一行有多长我不知道这TEXTSIZE我应该用我真的就能够使用一些“捏缩放”功能。

不过,我不知道是否有可能“捏”,以放大对textviews。香港专业教育学院发现,这样做对网页视图和imageviews但没有对textviews的各种方法。

我在寻找增加TEXTSIZE /通过“捏”

帮助与如何存储字符串缩放的布局和显示的最佳方式是非常欢迎也。

干杯!

回答

6

我是新Android开发,并试图找出相同。我已经测试应用程序用双指缩放但随着问题的工作要求在https://stackoverflow.com/questions/14306908/textview-in-a-scrollview-with-pinch-zoom

但是,这是工作

package com.example.pinchzoom; 

import android.os.Bundle; 
import android.app.Activity; 
import android.util.Log; 
import android.util.TypedValue; 
import android.view.Menu; 
import android.view.MotionEvent; 
import android.view.ScaleGestureDetector; 
import android.view.ScaleGestureDetector.SimpleOnScaleGestureListener; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

    TextView scaleGesture; 
    ScaleGestureDetector scaleGestureDetector; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     scaleGesture = (TextView)findViewById(R.id.article); 
     scaleGesture.setText("this is some text"); 
     scaleGestureDetector = new ScaleGestureDetector(this, new simpleOnScaleGestureListener()); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 


    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     // TODO Auto-generated method stub 
     scaleGestureDetector.onTouchEvent(event); 
     return true; 
    } 

    public class simpleOnScaleGestureListener extends 
      SimpleOnScaleGestureListener { 

     @Override 
     public boolean onScale(ScaleGestureDetector detector) { 
      // TODO Auto-generated method stub 
      float size = scaleGesture.getTextSize(); 
      Log.d("TextSizeStart", String.valueOf(size)); 

      float factor = detector.getScaleFactor(); 
      Log.d("Factor", String.valueOf(factor)); 


      float product = size*factor; 
      Log.d("TextSize", String.valueOf(product)); 
      scaleGesture.setTextSize(TypedValue.COMPLEX_UNIT_PX, product); 

      size = scaleGesture.getTextSize(); 
      Log.d("TextSizeEnd", String.valueOf(size)); 
      return true; 
     } 
    } 
} 

视图

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 
    <TextView 
     android:id="@+id/article" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</RelativeLayout> 
+0

您好.. TextView的更多钞票的旋转或不? –