如何设置imageview';在android中使用onTouch设置高度和宽度

如何设置imageview';在android中使用onTouch设置高度和宽度,android,android-layout,Android,Android Layout,我使用下面的代码来设置imageview的宽度。但它不起作用 xml: ` 当我触摸图像视图时,它什么也不做。尝试以下操作: private final class ChoiceTouchListener implements OnTouchListener{ public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN){

我使用下面的代码来设置imageview的宽度。但它不起作用

xml:

`

当我触摸图像视图时,它什么也不做。

尝试以下操作:

private final class ChoiceTouchListener implements OnTouchListener{

     public boolean onTouch(View v, MotionEvent event) {

         if (event.getAction() == MotionEvent.ACTION_DOWN){
             ImageView imgView = (ImageView) v;

             int width = 100;
             int height = 100;

             LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width, height);
             imgView.setLayoutParams(layoutParams);

             return true;
         } else{
             return false;
         }
     }
}
试试这个:

private final class ChoiceTouchListener implements OnTouchListener{

     public boolean onTouch(View v, MotionEvent event) {

         if (event.getAction() == MotionEvent.ACTION_DOWN){
             ImageView imgView = (ImageView) v;

             int width = 100;
             int height = 100;

             LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width, height);
             imgView.setLayoutParams(layoutParams);

             return true;
         } else{
             return false;
         }
     }
}

使用LayoutParams设置高度和宽度:

RelativeLayout layout = new RelativeLayout( this );
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT);

您可以使用View从代码访问任何LayoutParams。getLayoutParams

使用LayoutParams设置高度和宽度:

RelativeLayout layout = new RelativeLayout( this );
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT);
您可以使用View从代码访问任何LayoutParams。getLayoutParams

试试这个

RelativeLayout.LayoutParams param = (RelativeLayout.LayoutParams) v.getLayoutParams();
param.width=200;
v.setLayoutParams(param);
希望它对你有用。

试试这个

RelativeLayout.LayoutParams param = (RelativeLayout.LayoutParams) v.getLayoutParams();
param.width=200;
v.setLayoutParams(param);

希望它对您有用。

谢谢您的回复。我如何在RelativeLayout中使用这个?谢谢你的回答。我怎样才能在相对主义中使用它?@arjunkn。。。当我再次单击该图像视图时,如何设置默认位置?我使用了if(),但没有使用..将旧值存储到变量中,并在下次单击时设置layoutParam。a=参数宽度;下一步后,单击参数宽度=a;然后v.setLayoutParams(param);我想这是可行的。但是在你的回答中,我怎样才能找到下一次单击。@尼克只需添加一个布尔变量作为false。在它中,只需在第一次单击时使其成为现实。并检查其是否为真,如果为假,则更改第一个宽度并使其为真,如果为真,则单击下一个按钮,反之亦然。比如如果(isClicked==false){//do the first change}或者{//do the next change}得到了要点。实际上,我是这样做的,不知道这是正确的,但对我有用//声明为全局a=param.width;如果(isClicked==false){isClicked=true;param.width=200;v.setLayoutParam(param);}否则{param.width=a;v.setLayoutParam(param);isClicked=false;}请检查代码并重试。@arjunkn。。。当我再次单击该图像视图时,如何设置默认位置?我使用了if(),但没有使用..将旧值存储到变量中,并在下次单击时设置layoutParam。a=参数宽度;下一步后,单击参数宽度=a;然后v.setLayoutParams(param);我想这是可行的。但是在你的回答中,我怎样才能找到下一次单击。@尼克只需添加一个布尔变量作为false。在它中,只需在第一次单击时使其成为现实。并检查其是否为真,如果为假,则更改第一个宽度并使其为真,如果为真,则单击下一个按钮,反之亦然。比如如果(isClicked==false){//do the first change}或者{//do the next change}得到了要点。实际上,我是这样做的,不知道这是正确的,但对我有用//声明为全局a=param.width;如果(isClicked==false){isClicked=true;param.width=200;v.setLayoutParam(param);}否则{param.width=a;v.setLayoutParam(param);isClicked=false;}请检查代码并重试。