2017-01-23 4 views
0

나는 안드로이드 단어 검색 앱을 개발 중이며, tablelayouttextviews을 동적으로 생성하여 각 문자를 보관합니다. 글자 그리드에서 손가락을 쓸어 넘기면 그 배경색을 변경하고 싶습니다. 스 와이프 할 때 textview 배경색을 변경하는 방법은 무엇입니까?

테이블 레이아웃에 대한 코드입니다 :

public void createGrid(char[][] input) { 
    RelativeLayout rl = (RelativeLayout)findViewById(R.id.rl); 
    TableLayout table = (TableLayout) findViewById(R.id.mainLayout); 
    table.setTag(1); 
    Typeface font = Typeface.createFromAsset(getAssets(), "kg.ttf"); 
    int j; 



    for (int i = 0; i < input.length; i++) { 
     LinearLayout rowLayout = new LinearLayout(this); 
     rowLayout.setOrientation(LinearLayout.HORIZONTAL); 
     rowLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
     final TableRow row = new TableRow(this); 
     row.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); 
     row.setGravity(Gravity.CENTER_HORIZONTAL); 

     for (j = 0; j < input.length; j++) { 
      final TextView text = new TextView(this); 
      Character temp = input[i][j]; 
      text.setTag(i); 
      text.setText(temp.toString()); 
      text.setPadding(20, 20, 20, 20); 
      text.setTag(i); 
      text.setTextSize(txtSize); 
      text.setTypeface(font); 
      text.setGravity(Gravity.CENTER); 
      text.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        view.setBackgroundColor(Color.parseColor("#c03768b7")); 
        ((TextView)view).setTextColor(Color.WHITE); 
       } 
      }); 
      row.addView(text); 
      row.getChildAt(j); 

     } 
     table.addView(row); 

    } 
    } 

그리고 당신이 볼 수 있듯이, 나는 각 TextViewsOnClickListeners을 할당. 그러나 번거롭지 않은 강조 표시를 원합니다. 각 문자를 클릭하지 않고 스 와이프로 변경하는 방법이 있습니까? textviews?

모든 댓글, 답변 및 제안을 보내 주시면 대단히 감사하겠습니다.

편집 :

난 할 노력하고있어하면 텍스트가 슬쩍 될 때 텍스트 문자의 색상을 변경할 수 있습니다.

+0

당신은 텍스트가 접촉 할로 텍스트 문자의 색상을 변경하려고합니까? – OBX

+0

@Gboy ... 대답을 확인하고 상황을 알게하십시오. – Athul

+0

@Superman - 예. 그게 내가 뭘하려는거야 – Gboy

답변

0

아래에서 설명하는 것처럼 출근을 검색 및 텍스트 뷰 배경색을 변경하는 기능을 구현

 text.setOnTouchListener(new View.OnTouchListener() { 
       @Override 
       public boolean onTouch(View v, MotionEvent event) { 

        switch (event.getAction()) { 

         case MotionEvent.ACTION_DOWN: 
          x1 = event.getX(); 
          y1 = event.getY(); 
          t1 = System.currentTimeMillis(); 
          return true; 
         case MotionEvent.ACTION_UP: 
          x2 = event.getX(); 
          y2 = event.getY(); 
          t2 = System.currentTimeMillis(); 

          if (x1 > x2) { 
           Toast.makeText(getActivity(), "Left swipe", Toast.LENGTH_SHORT).show(); 
           // Insert your code to change the color of the textview background. 
        v.setBackgroundColor(Color.parseColor("#c03768b7")); 
          } else if (x2 > x1) { 
           Toast.makeText(getActivity(), "Right swipe", Toast.LENGTH_SHORT).show(); 
        v.setBackgroundColor(Color.parseColor("#c03768b7")); 
           // Insert your code to change the color of the textview background. 

          } 


          return true; 
        } 

        return false; 
       } 
+0

이 txt.setBackgroundColor (Color.RED)를 사용하여 backgorund를 변경하십시오. – Athul

+0

이런 식으로 색상을 추가하는 대신 ... 배열을 만들고 함수를 사용할 수 있습니다. 함수의 배열 색인 번호를 사용하여 배경색을 변경합니다. 배경색을 여러 색상으로 변경하려면 – Athul

+0

만 입력하십시오. – Athul