我使用下面的代码来设置imageview的宽度。但它没有用。
的xml:
`
<ImageView
android:id="@+id/card2"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="3dp"
android:layout_marginTop="120dp"
android:layout_toRightOf="@+id/card1"
android:contentDescription="@string/slot"
android:src="@drawable/spade_3" />`
和java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play__computer);
card1 = (ImageView)findViewById(R.id.card1);
card2 = (ImageView)findViewById(R.id.card2);
card1.setOnTouchListener(new ChoiceTouchListener());
card2.setOnTouchListener(new ChoiceTouchListener());
}
private final class ChoiceTouchListener implements OnTouchListener{
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN){
v.getLayoutParams().width = 100;
return true;
} else{
return false;
}
}
}
当我触摸图像视图时,它什么也没做。
答案 0 :(得分:1)
试试这个
RelativeLayout.LayoutParams param = (RelativeLayout.LayoutParams) v.getLayoutParams();
param.width=200;
v.setLayoutParams(param);
希望它对你有用。
答案 1 :(得分:0)
试试这个:
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;
}
}
}
答案 2 :(得分:0)
使用LayoutParams设置高度和宽度:
RelativeLayout layout = new RelativeLayout( this );
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
您可以使用View.getLayoutParams
从代码访问任何LayoutParams