こんにちは、まっさん(@Tera_Msaki)です。
この記事は Androidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Java での開発経験、XML構文規則、Android のアプリ開発経験がある方を対象としています。
Android のアプリ開発でお役にたててれば、嬉しいです。
(これから Android のアプリ開発や Java での開発を始めたい方への案内は、記事の最後で紹介します)
TextViewの文字をスクロール表示させて、文字列全体を表示する
ポイント
Andoridアプリの開発で、
使用頻度がもっとも高い、UIコンポーネントのTextView。
使用する上で、困りごとのひとつとして、
文字列全体が入りきらないケースがあります。
今回は、文字列全体が入りきらないケースの対応として、
文字列をスクロール表示させて、文字列全体を見せる、
簡単で便利な実装方法について、紹介します。
TextView
TextView には、ellipsize属性を指定することで、
指定した UI コンポーネントのサイズに文字列が入りきらない場合に、
省略表示する機能があります。
ellipsize属性の指定は、レイアウト XML に記述するほか、Java からも記述できます。
省略表示の方法として、
文字列の末尾(END)、中間(MIDDLE)、先頭(START)などが指定でき、
そのひとつとして、省略表示ではなくスクロール表示するMARQUEEがあります。
参考:レイアウトXML(item_horizontal)
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/image"
android:scaleType="centerCrop"
android:layout_width="120dp"
android:layout_height="120dp"
android:src="@drawable/no_image"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/name"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="12sp"/>
</LinearLayout>
</LinearLayout>
MARQUEE を使用する場合で、
スクロール表示する基準となるサイズ(layout_width)を指定することが重要です。
:
ArrayList<MusicItem> arrayList = new ArrayList<>();
:
RecyclerView.Adapter adapter = new RecyclerView.Adapter(arrayList) {
@Override
public View getView(ViewGroup parent) {
return LayoutInflater.from(parent.getContext()).inflate(R.layout.item_horizontal, parent,false);
}
@Override
public void onBindView(View view, Object data, int position) {
:
TextView textView = view.findViewById(R.id.name);
textView.setSingleLine(true);
textView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
textView.setText(arrayList.get(position).title);
textView.setSelected(true);
}
};
:
RecyclerViewのアダプタで、
onBindViewをオーバーライドします。
setSingleLineにTrueをセットして、
setEllipsizeでMARQUEEを指定します。
そして、TextViewに文字列をセットしたあとに、
setSelectedにTrueをセットして、
TextViewを選択状態にします。
参考:エンティティクラス(MusicItem)
public class MusicItem {
public String title; // タイトル
public String artist; // アーティスト
public long duration; // 再生時間
public Uri albumUri; // アルバムUri
public Uri musicUri; // 音楽ファイルUri
public String source; // 音楽ファイル
public MusicItem(String title, String artist, long duration, Uri albumUri, Uri musicUri, String source) {
this.title = title;
this.artist = artist;
this.duration = duration;
this.albumUri = albumUri;
this.musicUri = musicUri;
this.source = source;
}
}
今回は、ここまでです。
TextViewの文字をスクロール表示を実装している Androidアプリです。
誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にあるコメントか、
こちらから、お願いいたします♪
ポチッとして頂けると、
次のコンテンツを作成する励みになります♪

これからAndroidのアプリ開発やJavaでの開発を始めたい方へ
初めての Android のアプリ開発では、アプリケーション開発経験がない方や、
アプリケーション開発経験がある方でも、Java や C# などのオブジェクト指向言語が初めての方は、
書籍などによる独学ではアプリ開発できるようになるには、
かなりの時間がかかりますので、オンラインスクールでの習得をおススメします。
副業でアプリケーション開発と考えているなら、おススメです。
無料説明会に参加して、話を聞くだけでもためになるよ♪

ITスキルを身に付け、キャリアアップ。オンライン授業で仕事と両立できます。
まずは資料請求から♪
未経験者からシステムエンジニアを目指すのに最適かと、
まずは無料相談から♪

無料でJava言語を学べるのは、かなり魅力的♪
でも、応募資格は35歳以下です、、、
2022年12月から説明会が土曜日開催が追加されていますよ♪
説明会では、希望者に対してプログラミング体験もできるよ♪

未経験者からプログラマーを目指すのに最適かと、
まずは無料カウンセリングから♪

カリキュラムとサポートがしっかりしています、
お得なキャンペーンとかいろいろやっています♪

ゲーム系に強いスクール、UnityやUnrealEngineを習得するのに最適かと、
まずは無料オンライン相談から♪

参考になったら、💛をポッチとしてね♪
コメント欄