Android TextViewのランニングライト効果

6664 ワード

今日Android TextViewのランニングライト効果を使って、元プロジェクトのLayoutレイアウトにランニングライトのテキストを追加しました.不思議ですね.文字が出てくるのは私に走ってくれないことです.またプロジェクトテストを再構築しました.それはまた走ることができます.おかしい!!!
1.次はテスト項目のレイアウトファイルです.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/indexgallerytv"
        android:layout_width="200dip"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:gravity="left|center"
        android:marqueeRepeatLimit="marquee_forever"
        android:paddingLeft="20dip"
        android:paddingRight="20dip"
        android:textColor="#000000"
        android:scrollHorizontally="true"
        android:text=" , , , , , "
        
        android:textSize="20dip" />

</RelativeLayout>

2.次は追加されたアイテムのレイアウトファイルです.(ここでは間違ったレイアウトです.下に正しいレイアウトが貼られています)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff" >

    <include
        android:id="@+id/title"
        android:layout_alignParentTop="true"
        layout="@layout/main_title" />

    <LinearLayout
        android:id="@+id/top_layout"
        android:layout_width="fill_parent"
        android:layout_height="120dip"
        android:layout_below="@+id/title"
        android:layout_margin="5dip"
        android:background="@drawable/integral"
        android:text="@string/hello_world"
        tools:context=".MainActivity" />

    <GridView
        android:id="@+id/grid_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/top_layout"
        android:layout_marginLeft="1dip"
        android:layout_marginRight="1dip"
        android:cacheColorHint="#00000000"
        android:columnWidth="5dip"
        android:numColumns="3" >
    </GridView>

   <TextView
        android:id="@+id/indexgallerytv"
        android:layout_width="200dip"
        android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:gravity="left|center"
        android:marqueeRepeatLimit="marquee_forever"
        android:paddingLeft="20dip"
        android:paddingRight="20dip"
        android:textColor="#000000"
        android:scrollHorizontally="true"
        android:text=" , , , , , "
        
        android:textSize="20dip" />

</RelativeLayout>

3.その後、ネットでバスの上でデモをあげた人がいました.以上の問題は主にTextViewが焦点を得ることができなくて、走ることができなくて、今TextViewの中の方法を書き直して、焦点を取らなくても同じように走ることができます.
package com.jun.widget;

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

public class MarqueeText extends TextView {
    public MarqueeText(Context con) {
      super(con);
    }

    public MarqueeText(Context context, AttributeSet attrs) {
      super(context, attrs);
    }
    public MarqueeText(Context context, AttributeSet attrs, int defStyle) {
      super(context, attrs, defStyle);
    }
    @Override
    public boolean isFocused() {
    return true;
    }
    @Override
    protected void onFocusChanged(boolean focused, int direction,
       Rect previouslyFocusedRect) {  
    }
    }


4.私のプロジェクトのレイアウト:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff" >

    <include
        android:id="@+id/title"
        android:layout_alignParentTop="true"
        layout="@layout/main_title" />

    <LinearLayout
        android:id="@+id/top_layout"
        android:layout_width="fill_parent"
        android:layout_height="120dip"
        android:layout_below="@+id/title"
        android:layout_margin="5dip"
        android:background="@drawable/integral"
        android:text="@string/hello_world"
        tools:context=".MainActivity" >
    </LinearLayout>

    <GridView
        android:id="@+id/grid_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/pao"
        android:layout_below="@+id/top_layout"
        android:layout_marginLeft="1dip"
        android:layout_marginRight="1dip"
        android:cacheColorHint="#00000000"
        android:columnWidth="5dip"
        android:numColumns="3" >
    </GridView>

    <com.jun.widget.MarqueeText
        android:id="@+id/pao"
        android:layout_width="200dip"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:gravity="left|center"
        android:marqueeRepeatLimit="marquee_forever"
        android:paddingLeft="20dip"
        android:paddingRight="20dip"
        android:scrollHorizontally="true"
        android:text=" , , , , , "
        android:textColor="#000000"
        android:textSize="20dip" />

</RelativeLayout>

以上の修正を経てランニングランプが走り出しました!ははは