0

В моем проекте мы имеем 2 LinearLayout внутри файла макета, мы хотим, чтобы увеличить/уменьшить высоту с помощью прикосновения вверх и внизКак увеличить макет с помощью прикосновения вверх и вниз

enter image description here

Внутри макета У меня есть горизонтальный просмотр для изменения высоты макета. Эта точка зрения является второй компоновки

ответ

1
  1. Первый Detect размер области прокручивается зрения с помощью Android listView find the amount of pixels scrolled
  2. Затем установите эту свернутую высоту динамически с точки зрения Android set height and width of Custom view programmatically
+0

я думаю, что это не полезно для моего решения, потому что у меня есть вид в центре экрана –

+0

отредактированного, проверить его –

+0

Я добавил класс PixelScrollDetector и теперь, как использовать вторую ссылку, которую вы написали? –

0

Я мог бы решить код problem.complete является :

public class MultiTouchListener implements View.OnTouchListener { 


    private float mPrevX; 
    private float mPrevY; 

    public QuranActivity mainActivity; 
    public MultiTouchListener(QuranActivity mainActivity1) { 
     mainActivity = mainActivity1; 
    } 

    @Override 
    public boolean onTouch(View view, MotionEvent event) { 
     float currX,currY; 
     int action = event.getAction(); 
     switch (action) { 
      case MotionEvent.ACTION_DOWN: { 

       mPrevX = event.getX(); 
       mPrevY = event.getY(); 
       break; 
      } 

      case MotionEvent.ACTION_MOVE: 
      { 

       int w = mainActivity.getWindowManager().getDefaultDisplay().getWidth() - 100; 
       int h = mainActivity.getWindowManager().getDefaultDisplay().getHeight() - 100; 



       currX = event.getRawX(); 
       currY = event.getRawY(); 


       ViewGroup.MarginLayoutParams marginParams = new ViewGroup.MarginLayoutParams(view.getLayoutParams()); 


       //marginParams.topMargin = (int)(currY - mPrevY); 


      /* if(currX>w){ 
        marginParams.leftMargin = (int)(currX - mPrevX)-100; 
       } 
       else { 
        marginParams.leftMargin = (int)(currX - mPrevX); 
       } 


       if(currY>h){ 
        marginParams.rightMargin = (int)(currY - mPrevY)-100; 
       } 
       else { 
        marginParams.rightMargin = (int)(currY - mPrevY); 
       } 
*/ 




       marginParams.setMargins(0, (int)(currY - mPrevY),0, 0); 
       RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(marginParams); 
       view.setLayoutParams(layoutParams); 

       Log.e("onTouch X",currX - mPrevX+" " + ""); 
       Log.e("onTouch Y",currY - mPrevY+" " + ""); 



       break; 
      } 



      case MotionEvent.ACTION_CANCEL: 
       break; 

      case MotionEvent.ACTION_UP: 

       break; 
     } 

     return true; 
    } 
}