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
        硝烟狂飞的讯号 机甲时代正来到\n\n
        热血逆流而上\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);
    }
}

原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/12164386.html

时间: 2024-10-06 18:35:06

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

Android如何在java代码中设置margin

习惯了直接在xml里设置margin(距离上下左右都是10dip),如: <ImageView android:layout_margin="10dip" android:src="@drawable/image" /> 只是有些情况下,需要在java代码里来写. API中,android.view.ViewGroup.MarginLayoutParams有个方法setMargins(left, top, right, bottom).可是View本身没

Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解

Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解 (本文转自: http://blog.csdn.net/yinhaide/article/details/44756989) 前言:现在很多APP都需要云的功能,也就是通过网络与服务器交换数据.有的采用tcp/ip协议,但是你必须拥有一个固定ip的服务器,可以购买阿里云服务器之类的,就是贵了点.如果只是个人的小应用的的话可以采用新浪云平台这种免费的服务器,采用的协议是http协议,具体实现方式如下: 方式一.在线

在Android中使用Java 8的lambda表达式

译自http://www.coshx.com/blog/2015/03/23/use-java-8s-lambda-functions-in-android/ 在Android中使用Java 8的lambda表达式 作为一名Java开发者,或许你时常因为信息的封闭性而产生许多的困扰.幸运的是:Java's 8th version introduced lambda functions给我们带来了好消息:然而,这咩有什么卵用,在android上面,我们仍旧只能使用Java7. 那么现在情况如何?哈

JSP中嵌入java代码方式以及指令

JSP中嵌入java代码的三种方式: (1)声明变量或方法 :  <%! 声明; %> :慎重使用,因为此方法定义的是全局变量 (2)java片段(scriptlet):  <% java代码; %> (3)表达式:用于输出表达式的值到浏览器,<%=表达式  %>  在表达式中不能加分号(;) JSP页面的指令 <%@ page %> //这个一般是写在最顶上的比如导入等 <%@ page language="java" impor

MyEclipse中阿里JAVA代码规范插件(P3C)的安装及使用

JAVA代码规范插件(P3C)是阿里巴巴2017年10月14日在杭州云栖大会上首发的,使之前的阿里巴巴JAVA开发手册正式以插件形式公开走向业界.插件的相关信息及安装包都可以在GitHub(https://github.com/alibaba/p3c)上获取.目前插件实现了开发手册中的53条规则,只能满足较为基本的代码检测,后继应该会更加完善. MyEclipse中阿里JAVA代码规范插件(P3C)的安装跟通常的插件安装方法相同,有三种方法. 安装方法: 方法一.MyEclipse中在线安装 1

java基础 第十四章(Servlet声明周期、Servlet向jsp中提供数据、Servlet跳转jsp、jsp中书写java代码)

一.Servlet声明周期 1.Servlet的声明周期一般分为四步:加载.实例化.服务.销毁. 2.实例化在整个生命周期中只执行一次. 二.jsp 1.Servlet向jsp中提供数据 request.setAttribute( , ); 例:request.setAttribute("key" , "Hello"); 2.Servlet跳转jsp (1)同一请求方式:request.getRequestDispatcher("/路径").fo

在js中嵌套java代码

jsp中有时候在js中操作某些java后台传递过来的数据逻辑比较复杂,比如list内容的遍历,可以直接在页面上添加java脚本来执行内容,代码如下: //在js中插入java代码操作 <% //取出java后台设置好的userList List<Map<String,String>> userList = (List<Map<String,String>>)request.getAttribute("userList"); //如果

如何在Android中启动JAVA程序

本人博客原文:http://hubingforever.blog.163.com/blog/static/17104057920126166411775/ 在Android中启动JAVA程序其实有很多种方式,现总结如下 一.在Android应用程序中发送Intent启动Android应用程序 这个方式最简单,最常用.在此不在累述.关于Intent的更多内容请阅读<Intent技术简介> 二.在shell控制台通过am命令发送Intent来启动Android应用程序 在Android的shell

转--Android如何在java代码中设置margin

http://www.2cto.com/kf/201207/140111.html 红黑联盟: 习惯了直接在xml里设置margin(距离上下左右都是10dip),如: <ImageView android:layout_margin="10dip" android:src="@drawable/image" /> 只是有些情况下,需要在java代码里来写. API中,android.view.ViewGroup.MarginLayoutParams有个