2017-01-23 2 views
0

Я разрабатываю приложение поиска слов в Android и у меня есть динамическое создание tablelayout с textviews на нем для хранения каждой буквы. Я хочу изменить цвет фона тех textviews, когда палец пользователя проведите пальцем по сетке букв.Как изменить цвет фонов текста при прокрутке?

Это код для сервировки стола:

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); 

    } 
    } 

И как вы можете видеть, я назначил OnClickListeners на каждом TextViews. Но я хочу, чтобы без проблем было выделено так, есть ли способ изменить это на прокрутку и не нажимать каждый textviews?

Любые комментарии, ответы и предложения очень ценятся.

EDIT:

То, что я пытаюсь сделать, это изменить цвет букв в тексте, как текст наотмашь.

+0

Вы пытаетесь изменить цвет букв в тексте, как текст спер? – OBX

+0

@Gboy ... Пожалуйста, проверьте ответ и позвольте мне завязать ситуацию – Athul

+0

@Superman - да. Это то, что я пытаюсь сделать – Gboy

ответ

0

Обнаружение Размах, как указано ниже, и реализовать функцию, чтобы изменить цвет фона TextView

 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

Измените backgorund, используя этот txt.setBackgroundColor (Color.RED); – Athul

+0

Вместо добавления цвета, подобного этому ... u может создать массив и использовать функцию t = o изменить цвет фона с использованием номера индекса массива в функции – Athul

+0

только в том случае, если вы хотите, чтобы фон менялся с несколькими количествами цветов – Athul