Как использовать элементы управления масштабированием на TextView в Android? - PullRequest
3 голосов
/ 14 мая 2010

Я хочу увеличить текст, который отображается в центре экрана в соответствии с выбором пользователя. Как мне этого добиться? Использование pinch multitouch не может быть протестировано на эмуляторе, и я хочу что-то, что я могу проверить на эмуляторе Android Могу ли я использовать элементы управления увеличением и уменьшением, чтобы контролировать только вид текста для моего макета? Или Могу ли я использовать веб-просмотр для содержания текста, поскольку веб-просмотр имеет кнопки уменьшения масштаба по умолчанию?

Ответы [ 3 ]

1 голос
/ 14 мая 2010

Можно ли использовать элементы управления увеличением и уменьшением для контролировать только текстовое представление для моего макета?

Для этого нет встроенной поддержки. Вероятно, вы можете добиться этого эффекта самостоятельно, рисуя текст с помощью API-интерфейсов 2D-графики (Canvas) и сенсорных событий. Или перехватите сенсорные события на TextView и измените размер шрифта текста.

0 голосов
/ 14 октября 2016

Для уменьшения масштаба

public class ZoomControls extends AppCompatActivity
{
    Button zoomin, zoomout;
    TextView text;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_zoomcontrols);
        zoomin = (Button) findViewById(R.id.zoomin);
        zoomout = (Button) findViewById(R.id.zoomout);
        text = (TextView) findViewById(R.id.text);

        zoomin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                float x = text.getScaleX();
                float y = text.getScaleY();

                text.setScaleX((float) (x + 1));
                text.setScaleY((float) (y + 1));
            }
        });

        zoomout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                float x1 = text.getScaleX();
                float y1 = text.getScaleY();

                text.setScaleX((float) (x1 - 1));
                text.setScaleY((float) (y1 - 1));
            }
        });
    }
}
0 голосов
/ 06 января 2015

Это мой ответ на этот вопрос

public class Songs extends SherlockActivity implements OnTouchListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_songs);
        context = this;
        sett = new SettRenderingEngine(context);
        Intent i = getIntent();
        song = i.getStringExtra("song");
        singer = i.getStringExtra("singer");
        lyrics = i.getStringExtra("lyrics");
        txt_song_title = (TextViewPlus) findViewById(R.id.song_title);
        txt_singer = (TextViewPlus) findViewById(R.id.singer);
        txt_song_lyrics = (TextViewPlus) findViewById(R.id.song_lyrics);
        txt_song_title.setText(sett.getSettString(song));
        txt_singer.setText(sett.getSettString(singer));
        txt_song_lyrics.setText(sett.getSettString(lyrics));
        txt_song_lyrics.setOnTouchListener(this);
        scaleGestureDetector = new ScaleGestureDetector(this,
                new simpleOnScaleGestureListener());
    }   
      public class simpleOnScaleGestureListener extends
            SimpleOnScaleGestureListener {

        @Override
        public boolean onScale(ScaleGestureDetector detector) {
            float size = txt_song_lyrics.getTextSize();
            float factor = detector.getScaleFactor();
            float product = size * factor;
            txt_song_lyrics.setTextSize(TypedValue.COMPLEX_UNIT_PX, product);
            size = txt_song_lyrics.getTextSize();
            return true;
} 
}

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        scaleGestureDetector.onTouchEvent(event);
        return true;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...