Android中通过Java代码实现ScrollView滚动视图-以歌词滚动为例

时间:2021-12-17 18:21:51

场景

实现效果如下
Android中通过Java代码实现ScrollView滚动视图-以歌词滚动为例

 

 

Android中通过Java代码实现ScrollView滚动视图-以歌词滚动为例

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

将布局改为LinearLayout,并通过android:orientation="vertical">设置为垂直布局,然后添加id属性,并设置内边距

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@ id/ll1"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="16dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp"
    tools:context=".ScrollViewActivity">

</LinearLayout>

然后打开res下strings.xml,添加字符串资源

<resources>
    <string name="app_name">RelativeLayoutTest</string>
    <string name="lyric">
        公众号:霸道的程序猿n
        公众号:霸道的程序猿n
        公众号:霸道的程序猿n
        公众号:霸道的程序猿n
        公众号:霸道的程序猿n
        公众号:霸道的程序猿n
        公众号:霸道的程序猿n
        在这个风起云涌的战场上n
        暴风少年登场n
        在战胜烈火重重的咆哮声n
        喧闹整个世界n
        硝烟狂飞的讯号 机甲时代正来到nn
        热血逆流而上n
        战车在发烫 勇士也势不可挡n
        come on逆战 逆战来也 王牌要狂野n
        闯荡宇宙摆平世界n
        Oh 逆战 逆战狂野 王牌要发泄n
        战斗是我们倔强起点n
        我要操控我的权势n
        张扬我的声势n
        看这场龙战在野n
        这战场千百热血战士n
        一路向前飞驰n
        捍卫世界的勇士n
        Fighting 再一决n
        在这个风起云涌的战场上n
        暴风少年登场n
        在战胜烈火重重的咆哮声n
        喧闹整个世界n
        硝烟狂飞的讯号n
        机甲时代正来到n
        热血逆流而上n
        战车在发烫n
        勇士也势不可挡n
        come on逆战 逆战来也n
        王牌要狂野n
        闯荡宇宙摆平世界n
        Oh 逆战 逆战狂野n
        王牌要发泄n
        战斗是我们倔强起点n
        我要操控我的权势n
        张扬我的声势n
        看这场龙战在野n
        这战场千百热血战士n
        一路向前飞驰n
        捍卫世界的勇士n
        Fighting 再一决n
        兄弟一场n
        未来继续顽强n
        看着战火飘摇n
        瓦解对手力量n
        熊熊气势再出发n
        逆战 逆战来也n
        王牌要狂野n
        闯荡宇宙摆平世界n
        Oh 逆战 逆战狂野n
        王牌要发泄n
        战斗是我们倔强起点n
        我要操控我的权势n
        张扬我的声势n
        看这场龙战在野n
        这战场千百热血战士n
        一路向前飞驰n
        捍卫世界的勇士n
        Fighting 再一决n
    </string>
</resources>

然后打开activity

package com.badao.relativelayouttest;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;

public class ScrollViewActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_scroll_view);
        //获取LinearLayout1
        LinearLayout ll1 = (LinearLayout) findViewById(R.id.ll1);
        //声明LinearLayout2
        LinearLayout ll2 = new LinearLayout(ScrollViewActivity.this);
        //设置布局方向垂直
        ll2.setOrientation(LinearLayout.VERTICAL);
        //声明滚动视图
        ScrollView scrollView = new ScrollView(ScrollViewActivity.this);
        //将滚动视图添加到LinearLayout1
        ll1.addView(scrollView);
        //将LinearLayout2添加到滚动视图
        scrollView.addView(ll2);
        //声明ImagevView
        ImageView imageView = new ImageView(ScrollViewActivity.this);
        //设置照片
        imageView.setImageResource(R.drawable.dog);
        //将ImageView添加到LinearLayout2
        ll2.addView(imageView);
        //声明TextView
        TextView textView = new TextView(ScrollViewActivity.this);
        //设置TextView的内容
        textView.setText(R.string.lyric);
        //将TextView添加到LinearLayout
        ll2.addView(textView);
    }
}