Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách đảo hướng marquee TextView trong Android

Giới thiệu

Mặc định TextView marquee cuộn từ phải sang trái. Ví dụ này minh họa cách đảo hướng cuộn từ trái sang phải bằng thuộc tính RTL (Right-to-Left).

Bước 1: Tạo dự án mới

Android Studio → File → New Project.

Bước 2: Giao diện (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:gravity="center"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/text"
        android:textSize="20dp"
        android:textAlignment="center"
        android:layout_width="match_parent"
        android:ellipsize="marquee"
        android:layoutDirection="rtl"
        android:textDirection="rtl"
        android:fadingEdge="horizontal"
        android:marqueeRepeatLimit="marquee_forever"
        android:scrollHorizontally="true"
        android:textColor="#FF4500"
        android:text="Văn bản cuộn từ trái sang phải... Văn bản cuộn từ trái sang phải..."
        android:layout_height="wrap_content"
        android:singleLine="true" />

</RelativeLayout>

Giải thích các thuộc tính quan trọng

Thuộc tínhGiá trịChức năng
ellipsizemarqueeKích hoạt hiệu ứng cuộn
layoutDirectionrtlĐảo hướng layout (Right-to-Left)
textDirectionrtlĐảo hướng văn bản
fadingEdgehorizontalHiệu ứng mờ 2 đầu
marqueeRepeatLimitmarquee_foreverCuộn vô hạn
scrollHorizontallytrueCho phép cuộn ngang
singleLinetrueBuộc 1 dòng (bắt buộc cho marquee)

Bước 3: Kích hoạt marquee (src/MainActivity.java)

package com.example.andy.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView txt = findViewById(R.id.text);
        txt.setSelected(true); // BẮT BUỘC: Marquee chỉ chạy khi View được selected
    }
}

Chạy ứng dụng

Chạy app → TextView cuộn văn bản từ trái sang phải (ngược hướng mặc định) vô hạn.

Lưu ý

  • setSelected(true) là bắt buộc - marquee chỉ hoạt động khi View có focus/selected
  • RTL chỉ hiệu quả trên API 17+ (Android 4.2+)