Android Studio实现跑马灯微项目实例

首先在创建一个MarqueeTextViewDemo项目 在资源布局,activity_main.xml中中编写出相应的布局的EditText,按钮还有的TextView 第一步要实现一个静态的跑马灯样式,然后通过后台方法的调用,来实现动态跑马灯效果。 很多朋友在编写跑马灯时,会出现第一行文字内容正常,其他不会出现跑马灯效果,我这里的解决办法需要在Android的:ID上做文章,在MarqueeText.java中调用TextView的。 activity_main.xml中代码如下
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="#93ff93"
    tools:context="com.example.dujiang.marqueetextviewdemo.MainActivity">

    <com.example.dujiang.marqueetextviewdemo.MarqueeText
        android:id="@+id/tv_result"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:textSize="100dp"
        android:textColor="#CE0000"
        android:layout_marginTop="10dp"
        android:text="加微信:dujiang0311"
        />
    <EditText
        android:id="@+id/et_text"
        android:hint="输入跑马灯文字"
        android:layout_marginTop="400dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />
 <Button
     android:id="@+id/b_btn"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:text="点击生成跑马灯"
     android:layout_marginTop="450dp"
     android:onClick="scan"/>

    <com.example.dujiang.marqueetextviewdemo.MarqueeText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="75dp"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:text="自己动手丰衣足食,谢谢大家哈哈哈哈哈哈哈哈"
        android:layout_below="@id/tv_result"
        android:layout_alignParentStart="true" />

    <com.example.dujiang.marqueetextviewdemo.MarqueeText
     android:layout_width="wrap_content"
    android:layout_height="wrap_content"
         android:textSize="25dp"
    android:singleLine="true"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:text="自己动手丰衣足食,谢谢大家哈哈哈哈哈哈哈哈"
     android:layout_marginBottom="93dp"
        android:layout_alignBottom="@id/et_text"
        android:layout_alignParentStart="true" />

</RelativeLayout>
  • 废话不多说,第二步你需要让不止一行的文字显示出跑马灯的效果,所以,你需创建一个类在:JAVA-COM。.marqueetextviewdemo中。我取的类名称是MarqueeText.java代码如下
package com.example.dujiang.marqueetextviewdemo;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;

/**
 * Created by Dujiang on 2016/10/27.
 */

public class MarqueeText extends TextView {
    public MarqueeText(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    @Override
    public boolean isFocused(){
        //判断TextView是不是在一个被选中的状态上。
        return true ;//返回的是true,确定其在被选中的状态上
    }//刚才第一个可以滚动而第二个不可以滚动,是因为第一个Textview已经把focus(焦点)拿到了,
    //并没有被第二个得到(因为拿不到)
    //而我们自定义的值是让所有的Focused都能得到(焦点),因此两个都可以滚动

    public MarqueeText(Context context) {
        super(context);
    }

    public MarqueeText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public MarqueeText(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }
}
  • 你一定要清楚自己想要实现的效果,不是仅仅实现你后台输入的固定文字,这样的不足以称之为程序,只能称为垃圾代码,我们要能实现在前端编写相应的文字,让显示出来的文字呈现出跑马灯效果。
  • MainActivity是在程序中自动生成的,在这个类中,你需要将你EditText中编辑的文字,通过Button事件,在TextView中生成出来.MainActivity.java中的代码如下:
package com.example.dujiang.marqueetextviewdemo;

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

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private EditText editText;
    private TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.b_btn).setOnClickListener(this);
        editText = (EditText) findViewById(R.id.et_text);
        textView = (TextView) findViewById(R.id.tv_result);
    }
    public void onClick(View v) {
        textView.setText(editText.getText()); // !
    }
}
《嘟嘟音乐》是我自己写的Android,若有不足之处请大家谅解 1.首页实现读取本地Music本地文件夹中的MP3文件然后放进listview里面 2.实现了用户的用户的登录注册页面,登录过后用户可以进行自己的信息修改,实现了服务器的数据交互问题 3.实现了管理员登录,使用的是与Tomcat服务器进行数据交互验证信息的正确性,我使用的是myeclipse进行布置的服务器信息,此时使用的是SQLserver 2008 数据库存储的管理员的信息,读取完以后然后返回到管理界面 4.在嘟嘟音乐的管理界面,我实现了策划菜单以及卡片式布局来管理普通用户信息,以及用户信息的增删改查。查询使用的是以UserId或者昵称迷糊查询的方式进行查询的。 5.我使用的SQL server2008 的数据库文件我已经全部导出了,大家可以自行进行导入 6.我使用的myeclipse的项目是Servlet进行的验证app管理员信息的邓丽,项目我已经全部导出。放在压缩包里面 7.我使用的是Android Studio,我把文件布局截图放在压缩包里面,还有几个需要注意的地方,特别的坑,尤其是大家需要注意build.gridle(app)这里面大家需要注册导包,你并且配置好自己的SDK。大家还需要注意就是Android的注册文件里面也需要注意,关于一些权限的问题 8.哈哈,大概的的就写到这里了,写的不好的地方大家多见谅,我也是在学习阶段,把自己的写的东西给大家贡献出来以供大家参考学习使用。我还在压缩包里面放置了视频演示的链接信息,大家可以看看。如果感觉写的不错的话,请好评哦。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值