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