android studio 工程demo例子,Android Studio 实现跑马灯微项目实例

**闲来无事,自己做了很多小的Demo,现在分享一个小的跑马灯项目实例,有机会把2048小游戏的Demo也发了。不过那个的算法稍微有点儿复杂,需要整理。

首先在创建一个MarqueeTextViewDemo项目

在res-layout-activity_main.xml中编写出相应的布局EditText,Button还有TextView

第一步要实现一个静态的跑马灯样式,然后通过后台方法的调用,来实现动态跑马灯效果。

很多朋友在编写跑马灯时,会出现第一行文字内容正常,其他不会出现跑马灯效果,我这里的解决办法需要在Android:id上做文章,在MarqueeText.java中调用TextView。

activity_main.xml代码如下<?xml version="1.0" encoding="utf-8"?>

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">

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"

/>

android:id="@+id/et_text"

android:hint="输入跑马灯文字"

android:layout_marginTop="400dp"

android:layout_width="match_parent"

android:layout_height="wrap_content"

/>

android:id="@+id/b_btn"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="点击生成跑马灯"

android:layout_marginTop="450dp"

android:onClick="scan"/>

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" />

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" />

废话不多说,第二步你需要让不止一行的文字显示出跑马灯的效果,所以,你需创建一个类在: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()); // !

}

}

以上就实现了代码的动态显示的过程,其实并不太难,里面涉及到的强制类型转换的问题,这个就需要读者自己体悟了。以下是个人经验:关于编程我们最重要的是要养成自己的编程习惯,其次,我们写出来的代码首先让自己看着舒服,其次是让别人看着舒服,最最忌讳的是让电脑看着舒服,你控制着你的代码, 并不是你的代码控你。致我们这些一直走在路上的程序猿!!!!

**

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270894.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLServer常用的配置函数笔记

今天给大家分享一下SQLServer常用的配置函数知识&#xff0c;希望对初学者能有所帮助&#xff01;1、DATEFIRST Datefirst返回值tinyint说明:datefirst指一周中的第一天&#xff0c;英语中第一天为星期日示例&#xff1a;SELECT DATEFIRST AS 1st Day, DATEPART(dw, GETDATE())…

localdatetime 默认时间_datetime-local设置初始值

//全局变量var format "";//构造符合datetime-local格式的当前日期function getFormat(){format "";var nTime new Date();format nTime.getFullYear()"-";format (nTime.getMonth()1)<10?"0"(nTime.getMonth()1):(nTime.get…

android音乐播放器完整教程,android实现简单音乐播放器

本文实例为大家分享了android音乐播放器的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下话不多说先上效果前言写这个音乐播放器实在是迫不得已。因为我们Andoird课程要求写一个音乐播放器。所以就有了此项目。这个项目比较简单&#xff0c;实现了最基本的音乐播放功…

编译原理

编译原理是计算机专业的一门重要专业课&#xff0c;旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 这门课程是一门真正与代码做斗争的课程&#xff0c;对于一个有至于追…

JDK1.8 JVM元数据区取代了永久代,元数据空间并不在虚拟机中,而是使用本地内存

JDK1.8 JVM运行时内存数据区域划分。1.8同1.7比&#xff0c;最大的差别就是&#xff1a;元数据区取代了永久代。元空间的本质和永久代类似&#xff0c;都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于&#xff1a;元数据空间并不在虚拟机中&#xff0c;而是…

SQLServer常用的字符串函数梳理

今天给大家分享一下SQLServer常用的字符串函数知识笔记&#xff0c;希望对大家能有所帮助&#xff01;1、ASCII(字符串表达式)作用&#xff1a;返回表达式最左侧字符串的ASCII代码值。示例&#xff1a;SELECT ASCII(ABC),ASCII(A) --返回结果都是65 计算的是第一个字符串的ASCI…

tchar linux,错误:Error:未定义标识符_TCHAR

svn sc create 命令行创建服务自启动今天重装了系统,Subversion服务也得重装.照例输入代码: sc create svnserve binpath"d:\PortableApps\svn\svnserve.exe - ...Spring&lowbar;Springmvc&lowbar;mybatis一般配置web.xml配置 <?xml version"1.0" e…

Mac 系统引导过程概述 BootCamp 的秘密

http://bbs.feng.com/read-htm-tid-6890655.html转载于:https://www.cnblogs.com/zengkefu/p/5857710.html

开封机器人餐厅_百合汇主题酒店——开封首家机器人服务员餐厅

【中原经济网开封新闻讯】 (河南经济报记者 张长剑 李海) 年底岁末&#xff0c;服务行业的用工荒逐渐凸显&#xff0c;不过&#xff0c;开封百合汇主题酒店的老板却不为此发愁&#xff0c;因为&#xff0c;这家店刚刚引进了两台高大上的机器人服务员。2月3日&#xff0c;记者在…

SQLServer常见的数学函数梳理

今天给大家分享一下SQLServer常见的数学函数相关的知识笔记。1.绝对值函数ABS(x)和返回圆周率的函数PI()ABS(x)返回x的绝对值,PI()返回圆周率的值用法&#xff1a;select ABS(5),ABS(-10.6),ABS(-99),PI();输出结果&#xff1a;5 10.6 99 3.141592653589792.平方根函数SQRT(x)S…

android 属性动画变大,Android PropertyAnimation 属性动画(一)初探

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;前言相对于静态的页面&#xff0c;动画往往能更直观地表达所需的信息&#xff0c;在UI开发过程中起着相当大的作用。Android为我们提供了一系列实现动画效果的方法…

android stadio svn 使用技巧

有时候有这样的需求&#xff1a; 就是我一次要改很多的需求&#xff0c;然后代码要分开提交&#xff0c;那么怎么办&#xff1f; 提交的时候一个一个的点开看&#xff1f; 比如&#xff1a;这次改的还没有提上去&#xff0c;又来了一个需求&#xff0c;怎么区分呢 新建一个ac…

用扫地机器人楼下吵吗_扫地机器人到底好不好用?说说我两年的使用体验!

原标题&#xff1a;扫地机器人到底好不好用&#xff1f;说说我两年的使用体验&#xff01;说到扫地机器人绝大部分人都非常陌生&#xff0c;因为我国目前还处在扫地机器人发展初期阶段&#xff0c;连一线城市普及率都只有5%&#xff0c;所以非常理解大家对新事物的恐惧和排斥&a…

SQLServer常用的日期和时间函数梳理

今天给大家分享一下SQLServer常用的日期和时间函数知识笔记&#xff0c;希望对大家能有所帮助&#xff01;1、DATEADD(datepart,number,date)作用&#xff1a;返回给指定日期加一个时间间隔后新的datetime值参数说明&#xff1a;datepart&#xff1a;指定为日期的哪部分增加数值…

树二叉树二叉搜索树

树&二叉树 树是由节点和边构成&#xff0c;储存元素的集合。节点分根节点、父节点和子节点的概念。 二叉树binary tree&#xff0c;则加了“二叉”&#xff08;binary&#xff09;&#xff0c;意思是在树中作区分。每个节点至多有两个子&#xff08;child&#xff09;,left…

努比亚连续按下android版本,虚惊一场!努比亚Z17的Android 9.0真的不远了

01努比亚Z17将推送安卓9.0中关村在线消息&#xff1a;前不久&#xff0c;有消息传出努比亚Z17开发者版本系统将停止更新&#xff0c;并将永远停留在Android 7.0之后&#xff0c;引起了众多牛仔们的一篇叹息。大家纷纷在惋惜的同时&#xff0c;也着实对努比亚的做法有些不理解。…

websocket 西部数码php_网页实时聊天之PHP实现websocket

前言websocket 作为 HTML5 里一个新的特性一直很受人关注&#xff0c;因为它真的非常酷&#xff0c;打破了 http “请求-响应”的常规思维&#xff0c;实现了服务器向客户端主动推送消息&#xff0c;本文介绍如何使用 PHP 和 JS 应用 websocket 实现一个网页实时聊天室&#xf…