android studio 工程demo例子,Android Studio 实现跑马灯微项目实例
**閑來(lái)無(wú)事,自己做了很多小的Demo,現(xiàn)在分享一個(gè)小的跑馬燈項(xiàng)目實(shí)例,有機(jī)會(huì)把2048小游戲的Demo也發(fā)了。不過(guò)那個(gè)的算法稍微有點(diǎn)兒復(fù)雜,需要整理。
首先在創(chuàng)建一個(gè)MarqueeTextViewDemo項(xiàng)目
在res-layout-activity_main.xml中編寫(xiě)出相應(yīng)的布局EditText,Button還有TextView
第一步要實(shí)現(xiàn)一個(gè)靜態(tài)的跑馬燈樣式,然后通過(guò)后臺(tái)方法的調(diào)用,來(lái)實(shí)現(xiàn)動(dòng)態(tài)跑馬燈效果。
很多朋友在編寫(xiě)跑馬燈時(shí),會(huì)出現(xiàn)第一行文字內(nèi)容正常,其他不會(huì)出現(xiàn)跑馬燈效果,我這里的解決辦法需要在Android:id上做文章,在MarqueeText.java中調(diào)用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="點(diǎn)擊生成跑馬燈"
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="自己動(dòng)手豐衣足食,謝謝大家哈哈哈哈哈哈哈哈"
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="自己動(dòng)手豐衣足食,謝謝大家哈哈哈哈哈哈哈哈"
android:layout_marginBottom="93dp"
android:layout_alignBottom="@id/et_text"
android:layout_alignParentStart="true" />
廢話不多說(shuō),第二步你需要讓不止一行的文字顯示出跑馬燈的效果,所以,你需創(chuàng)建一個(gè)類在: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是不是在一個(gè)被選中的狀態(tài)上。
return true ;//返回的是true,確定其在被選中的狀態(tài)上
}//剛才第一個(gè)可以滾動(dòng)而第二個(gè)不可以滾動(dòng),是因?yàn)榈谝粋€(gè)Textview已經(jīng)把focus(焦點(diǎn))拿到了,
//并沒(méi)有被第二個(gè)得到(因?yàn)槟貌坏?
//而我們自定義的值是讓所有的Focused都能得到(焦點(diǎn)),因此兩個(gè)都可以滾動(dòng)
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);
}
}
你一定要清楚自己想要實(shí)現(xiàn)的效果,不是僅僅實(shí)現(xiàn)你后臺(tái)輸入的固定文字,這樣的不足以稱之為程序,只能稱為垃圾代碼,我們要能實(shí)現(xiàn)在前端編寫(xiě)相應(yīng)的文字,讓顯示出來(lái)的文字呈現(xiàn)出跑馬燈效果。
MainActivity 是在程序中自動(dòng)生成的,在這個(gè)類中,你需要將你EditText中編輯的文字,通過(guò)Button事件,在TextView中生成出來(lái)。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()); // !
}
}
以上就實(shí)現(xiàn)了代碼的動(dòng)態(tài)顯示的過(guò)程,其實(shí)并不太難,里面涉及到的強(qiáng)制類型轉(zhuǎn)換的問(wèn)題,這個(gè)就需要讀者自己體悟了。以下是個(gè)人經(jīng)驗(yàn):關(guān)于編程我們最重要的是要養(yǎng)成自己的編程習(xí)慣,其次,我們寫(xiě)出來(lái)的代碼首先讓自己看著舒服,其次是讓別人看著舒服,最最忌諱的是讓電腦看著舒服,你控制著你的代碼, 并不是你的代碼控你。致我們這些一直走在路上的程序猿!!!!
**
總結(jié)
以上是生活随笔為你收集整理的android studio 工程demo例子,Android Studio 实现跑马灯微项目实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 网络蚂蚁(netants) v1.25
- 下一篇: Qt C++ 命名空间namespace