Java 如何在Touch上更改textView颜色的示例?
我已经在一个项目上工作了一段时间,现在我想要它,这样当用户触摸屏幕时,它就会改变textView(数字时钟)的颜色。说到java,我有点不在行,所以如果可能的话,我真的需要一个完整的工作示例吗?以下是我目前的代码:Java 如何在Touch上更改textView颜色的示例?,java,android,colors,textview,Java,Android,Colors,Textview,我已经在一个项目上工作了一段时间,现在我想要它,这样当用户触摸屏幕时,它就会改变textView(数字时钟)的颜色。说到java,我有点不在行,所以如果可能的话,我真的需要一个完整的工作示例吗?以下是我目前的代码: public class MainActivity extends Activity { private static final Random RANDOM = new Random(); @Override protected void onCreate(Bundle save
public class MainActivity extends Activity {
private static final Random RANDOM = new Random();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_main);
Handler handler = new RandomMoveHandler((TextView) findViewById(R.id.digitalClock1));
handler.sendEmptyMessage(0);
}
private static class RandomMoveHandler extends Handler {
private final WeakReference<TextView> textViewWeakReference;
private RandomMoveHandler(TextView textView) {
this.textViewWeakReference = new WeakReference<TextView>(textView);
}
@Override
public void handleMessage(Message msg) {
TextView textView = textViewWeakReference.get();
if (textView == null) {
Log.i(TAG, "WeakReference is gone so giving up.");
return;
}
int x = RANDOM.nextInt(670 - 100);
int y = RANDOM.nextInt(1230 - 100);
Log.i(TAG, String.format("Moving text view to (%d, %d)", x, y));
textView.setX(x);
textView.setY(y);
//change the text position here
this.sendEmptyMessageDelayed(0, 30000);
}
}
公共类MainActivity扩展活动{
私有静态最终随机=新随机();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG\u保持屏幕打开);
setContentView(R.layout.activity_main);
Handler Handler=new RandomMoveHandler((TextView)findViewById(R.id.digitalClock1));
handler.sendEmptyMessage(0);
}
私有静态类RandomMoveHandler扩展了Handler{
私有最终WeakReference text查看WeakReference;
私有随机移动处理程序(TextView TextView){
this.textViewWeakReference=新的WeakReference(textView);
}
@凌驾
公共无效handleMessage(消息消息消息){
TextView TextView=textViewWeakReference.get();
if(textView==null){
i(标记“WeakReference消失了,所以放弃了”);
返回;
}
int x=随机的.nextInt(670-100);
int y=随机的nextInt(1230-100);
Log.i(TAG,String.format(“将文本视图移动到(%d,%d)”,x,y));
textView.setX(x);
textView.setY(y);
//在此处更改文本位置
此.sendEmptyMessageDelayed(0,30000);
}
}
另请参见我在“textView.setOnTouchListener”上遇到此错误:“标记“setOnTouchListener”上的语法错误,=此标记后应出现此错误”好的,我想我已经知道了,但是我如何添加更多颜色?只需在项目的res/values/colors.xml中定义它们。所有这些都记录在这里:
textView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// use any of your own colors here...
textView.setTextColor(android.R.color.holo_purple);
return true;
}
});