跑馬燈android
A. android 跑馬燈失效的原因有哪些
android跑馬燈有時候不跑的解決方法
要嚴格按照下面的設置順序進行設置,否則在有的手機上可能不會有效果。
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:marqueeRepeatLimit="marquee_forever"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
B. android怎樣實現跑馬燈效果
Android自帶的跑馬燈效果不太好控制,不能控制速度,不能即時停止和啟動,而且還受焦點的影響蛋疼不已。由於項目需求需要用的可控制性高的跑馬燈效果,所以自己寫了一個自定義的TextView
android:ellipsize="marquee" android:singleLine="true" 這兩個屬性也要加上
public class MarqueeText extends TextView implements Runnable {
private int currentScrollX;// 當前滾動的位置
private boolean isStop = false;
private int textWidth;
private boolean isMeasure = false;
public MarqueeText(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MarqueeText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MarqueeText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
if (!isMeasure) {// 文字寬度只需獲取一次就可以了
getTextWidth();
isMeasure = true;
}
}
/**
* 獲取文字寬度
*/
private void getTextWidth() {
Paint paint = this.getPaint();
String str = this.getText().toString();
textWidth = (int) paint.measureText(str);
}
@Override
public void run() {
currentScrollX -= 2;// 滾動速度
scrollTo(currentScrollX, 0);
if (isStop) {
return;
}
if (getScrollX() <= -(this.getWidth())) {
scrollTo(textWidth, 0);
currentScrollX = textWidth;
// return;
}
postDelayed(this, 5);
}
// 開始滾動
public void startScroll() {
isStop = false;
this.removeCallbacks(this);
post(this);
}
// 停止滾動
public void stopScroll() {
isStop = true;
}
// 從頭開始滾動
public void startFor0() {
currentScrollX = 0;
startScroll();
}
}布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="start"
android:text="走起" />
<Button android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="stop" android:text="停止" /> <Button android:id="@+id/startfor0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="startFor0" android:text="從頭開始" /> <simtice.demo.marqueetext.MarqueeText android:id="@+id/test" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#339320" android:ellipsize="marquee" android:singleLine="true" android:text="這才是真正的文字跑馬燈效果這才是真正的字跑馬燈效果這才是真正的" android:textColor="#000000" android:textSize="20dp" > </simtice.demo.marqueetext.MarqueeText></LinearLayout>MainActivitypublic class MainActivity extends Activity { private MarqueeText test; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); test = (MarqueeText) this.findViewById(R.id.test); } public void start(View v) { test.startScroll(); } public void stop(View v) { test.stopScroll(); } public void startFor0(View v){ test.startFor0(); }}
C. android怎樣實現跑馬燈效果
如果是文字的跑馬燈效果,只要在textview里加這個marqueeRepeatLimit屬性就可以了
D. Android studio走馬燈如何設置位置
首先在創建一個MarqueeTextViewDemo項目
在資源布局,activity_main.xml中中編寫出相應的布局的EditText,按鈕還有的TextView
第一步要實現一個靜態的跑馬燈樣式,然後通過後台方法的調用,來實現動態跑馬燈效果。
很多朋友在編寫跑馬燈時,會出現第一行文字內容正常,其他不會出現跑馬燈效果,我這里的解決辦法需要在Android的:ID上做文章,在MarqueeText.java中調用TextView的。
activity_main.xml中代碼如下
E. android怎樣實現跑馬燈效果
android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" textview 添上上面的屬性就可以了
F. android 跑馬燈效果,如果文字不超過寬度,我也想做出跑馬燈效果,怎麼實現
今天要實現的一個效果是在Android中實現一個跑馬燈的效果:
在新建一個Android proct之後,在布局文件main中替換掉原來的TextView
代碼如下:
<TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:text="這是跑馬燈的效果這是跑馬燈的效果">
</TextView>
其他部分代碼不用改動,在模擬器上應該可以看到滾動的顯示"這是跑馬燈的效果這是跑馬燈的效果"。
其中有幾個問題是我自己碰到的,列舉如下:
1.寬度android:layout_width不可以設置為wrap_content(自適應內容)
2.android:text最好是比較長的字元串,最少要長過自己設置的width大小(我這里是60dp)
3.顏色最好別設置為@android:color/white,否則你什麼都看不到,因為背景顏色也是white
4.在xml中,TextView 的屬性
android:ellipsize = "end" 省略號在結尾
android:ellipsize = "start" 省略號在開頭
android:ellipsize = "middle" 省略號在中間
android:ellipsize = "marquee" 跑馬燈
5.android:scrollHorizontally="true"相信大家英文水平還不錯的話都明白這句的意思是水平滾動
6.android:marqueeRepeatLimit="marquee_forever" 看英文同樣可以明白,是無限次循環,學習android,英文基礎還是必須的。
7.最後還有兩句代碼沒有解釋:
android:focusable="true" //讓TextView獲得焦點
android:focusableInTouchMode="true" //針對觸摸屏獲得當前焦點
事實上這兩句代碼我也了解不是特別多,在網上查了下這兩個屬性,目前理解為:
android:focusable="true"相當於當前Activity打開的時候,讓當前控制項TextView獲得焦點,才可以實現滾動功能
android:focusableInTouchMode="true"和上述屬性應該是類似的,但限制應該是指的觸摸屏上的意思
對於這兩個屬性,希望有高人指點下。
G. 用androidstudio的textview怎麼實現跑馬燈
1.打開Eclipse,創建一個android工程,填寫項目名稱為TextViewShow,勾選相應的android平台選項,填寫應用名稱TextViewShow,填寫包名com.cn(這個隨意起),填寫啟動的activity:ViewShow
最後點擊完成按鈕
在向TextViewShow\res\layout\main.xml 中 添加TextView,進行屬性定義,其中android:layout_width="90px" 這個很重要,這個是TextView的內容寬度,也就是說如果展示的內容長度大於90px,才能出現跑馬燈的效果,否則不會出現。當然了,可以把 android:layout_width="fill_parent",那麼提供的文字信息長度必須要長,大於外界的寬度;在這里,要求長度大於屏幕的寬度
同時:
android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"android:singleLine="true"
其中,id的命名注意,務必是 android:id="@+id/textview" 這個形式,有個+號
對於其中的
android:text="@string/hello" hello的定義在res\values\strings.xml
在主體的activity ViewShow中添加主要方法,完成相應的滑鼠事件注冊,TextView的初始化。
TextView textview = (TextView)this.findViewById(R.id.textview);
textview.setTextColor(Color.RED); //設置文本顏色
//設置字體的大小 textview.setTextSize(20);
//設置文字背景textview.setBackgroundColor(Color.BLUE);/** 設置textview文字的顯示 **/
String content="TextView 歡迎使用 ";
textview.setText(content);
同時處理滑鼠點擊的事件
textview.setOnClickListener(new OnClickListener() {
@Override public void onClick(View arg0) { // TODO Auto-generated method stub TextView textviewTemp = (TextView) arg0; textviewTemp.setText("被點擊了"); textviewTemp.setBackgroundColor(Color.GREEN); } });
4
保存代碼,滑鼠右鍵選中項目,開始運行android項目,可以看到效果
H. android怎樣實現跑馬燈效果
//textView必須要有焦點才會動,要不然是不會動的
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:ellipsize="marquee" //跑馬燈屬性
I. android 怎樣給一個由三個textview 組成的添加跑馬燈效果
今天要實現的一個效果是在Android中實現一個跑馬燈的效果:在新建一個Androidproct之後,在布局文件main中替換掉原來的TextView代碼如下:其他部分代碼不用改動,在模擬器上應該可以看到滾動的顯示"這是跑馬燈的效果這是跑馬燈的效果"。其中有幾個問題是我自己碰到的,列舉如下:1.寬度android:layout_width不可以設置為wrap_content(自適應內容)2.android:text最好是比較長的字元串,最少要長過自己設置的width大小(我這里是60dp)3.顏色最好別設置為@android:color/white,否則你什麼都看不到,因為背景顏色也是white4.在xml中,TextView的屬性android:ellipsize="end"省略號在結尾android:ellipsize="start"省略號在開頭android:ellipsize="middle"省略號在中間android:ellipsize="marquee"跑馬燈5.android:scrollHorizontally="true"相信大家英文水平還不錯的話都明白這句的意思是水平滾動6.android:marqueeRepeatLimit="marquee_forever"看英文同樣可以明白,是無限次循環,學習android,英文基礎還是必須的。7.最後還有兩句代碼沒有解釋:android:focusable="true"//讓TextView獲得焦點android:focusableInTouchMode="true"//針對觸摸屏獲得當前焦點事實上這兩句代碼我也了解不是特別多,在網上查了下這兩個屬性,目前理解為:android:focusable="true"相當於當前Activity打開的時候,讓當前控制項TextView獲得焦點,才可以實現滾動功能android:focusableInTouchMode="true"和上述屬性應該是類似的,但限制應該是指的觸摸屏上的意思對於這兩個屬性,希望有高人指點下。