如何在点击时对textview进行闪烁效果?

时间:2014-04-23 10:10:46

标签: android onclick textview

嗨,我是Android开发新手。我想为textview创建onclick效果。当我点击文本视图时,它会闪烁或有效果。我尝试了改变颜色,但它不起作用。如何在textview onclick上制作闪烁效果? 请帮我提供示例代码。提前谢谢:)

5 个答案:

答案 0 :(得分:20)

最简单的方法是在 TextView 中设置此背景:

public function Index()
{
    if ($query = $this->request->getVar('query')) {
        $colleges = $this->GetColleges($query); // another function that does a search
        $results = array();
        if($colleges->count() > 0){
            foreach($colleges as $college){
                $results[] = array(
                                'value' => $college->Title,
                                'data' => $college->AbsoluteLink()
                            );
            }
        }
        $suggestions = array('suggestions' => $results);
        $converted = convert::array2json($suggestions);
        return $converted;
    }
    return false;
}

如果您想为背景设置不同的颜色,请将 attr 设置为 android:background="?attr/selectableItemBackground" 而不是foreground

答案 1 :(得分:6)

创建一个名称类似于txt_bg.xml

的xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_normal"></item>

</selector>

然后添加texview xml

android:background="@drawable/txt_bg"
android:clickable="true"
希望它会有所帮助。

答案 2 :(得分:2)

尝试以下代码: -

        <Button
            android:id="@+id/action"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:layout_margin="5dp"
            android:background="@drawable/btn_click"
            android:gravity="center"
            android:textColor="@color/white"
            android:textSize="12sp" />

<强> btn_click.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/button_hover" android:state_pressed="true"/>
    <item android:drawable="@drawable/button"/> 

</selector>

或以下

<强> btn_hover.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <stroke
        android:width="1dp"
        android:color="#000000" />

    <gradient
        android:angle="270"
        android:centerColor="#1a000000"
        android:endColor="#33000000"
        android:startColor="@android:color/transparent" >
    </gradient>

    <corners android:radius="5dp" />

</shape>

<强> btn.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <stroke 
        android:color="#000000"
        android:width="1dp"
        />
    <gradient
        android:angle="270"
        android:centerColor="@android:color/transparent"
        android:endColor="@android:color/transparent"
        android:startColor="@android:color/transparent" >
    </gradient>
    <corners android:radius="5dp" />
</shape>

<强> btn_click.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/btn_hover" android:state_pressed="true"/>
    <item android:drawable="@drawable/btn"/>

</selector>

答案 3 :(得分:2)

试试这个。它对我有用。

        android:clickable="true"
        android:focusable="true"
        android:background="?android:attr/selectableItemBackground"

答案 4 :(得分:0)

public class TesteBlinkActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        blink();
}

private void blink(){
    final Handler handler = new Handler();
    new Thread(new Runnable() {
        @Override
        public void run() {
        int timeToBlink = 1000;    //in milissegunds
        try{Thread.sleep(timeToBlink);}catch (Exception e) {}
            handler.post(new Runnable() {
                @Override
                    public void run() {
                    TextView txt = (TextView) findViewById(R.id.usage);
                    if(txt.getVisibility() == View.VISIBLE){
                        txt.setVisibility(View.INVISIBLE);
                    }else{
                        txt.setVisibility(View.VISIBLE);
                    }
                    blink();
                }
                });
            }
        }).start();
    }