2015-12-02 100 views
0

你好我想在用戶觸摸一個按鈕時在TextView上顯示一個字符串。但是我希望這個TextView能夠顯示在用戶觸摸屏幕的相同位置。目前,我有以下的代碼,但它不工作了:在位置x,y上設置TextView

private void set(Integer name, Float x, Float y, Typeface font) { 

    RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.MATCH_PARENT, 
      RelativeLayout.LayoutParams.MATCH_PARENT); 
    layoutParams.setMargins(10, 1, 10, 1); 

    RelativeLayout nlap = new RelativeLayout(this); 
    nlap.setLayoutParams(layoutParams); 

    TextView tv1 = new TextView(this); 
    tv1.setX(x); 
    tv1.setY(y); 
    tv1.setText("+ " + String.valueOf(name)); 
    tv1.setTypeface(font); 
    tv1.setGravity(Gravity.CENTER); 
    tv1.setTextSize(20); 
    nlap.addView(tv1); 

} 

而在OnTouchListener:

int action = motionEvent.getAction(); 
      int x = (int)motionEvent.getX(); 
      int y = (int)motionEvent.getY(); 
      set(multiplicator, Float.intBitsToFloat(x), Float.intBitsToFloat(y), font); 

我希望你能幫助我。謝謝!

回答

1

申報的TextView全球該活動

TextView tv; 

然後在oncreate()方法

tv=(TextView) findViewById(R.id.your_xml_textview); 
tv.setText("your desired text"); 
tv.setVisibility(View.INVISIBLE); 

您也可以直接在你的XML使用android:visibility="invisible"現在

屏幕ontouch我們取得共同座標並通過以下代碼將textView放在該點上

@Override 
public boolean onTouchEvent(MotionEvent event) { 
int corx = (int)event.getX(); 
int cory = (int)event.getY(); 
tv.setX(corx); 
tv.setY(cory); 
tv.setVisibility(View.VISIBLE); 
switch (event.getAction()) { 
    case MotionEvent.ACTION_DOWN: 
    case MotionEvent.ACTION_MOVE: 
    case MotionEvent.ACTION_UP: 
} 
return false; 
} 
+0

好吧謝謝它的作品,但我想通了,我認爲按鈕的座標不是在整個佈局相同。你可以幫我嗎? – mcjonesman