我是通过Java代码向ImageView
添加RelativeLayout
,而未在Imageview
中声明XML
。使用以下代码:
final ImageView newImageView= new ImageView(context);
final RelativeLayout.LayoutParams imgvwDimens =
new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
newImageView.setLayoutParams(imgvwDimens);
ImageLoader imageLoader = new ImageLoader(context);
imageLoader.DisplayImage(imageURL, R.drawable.ic_launcher, newImageView);
newImageView.setScaleType(ScaleType.MATRIX);
newImageView.setLongClickable(true);
newImageView.setClickable(true);
我想在ImageView
的中心添加RelativeLayout
,以便可以通过以下方式完成:
imgvwDimens.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
但是,如果我这样做,ImageView
会在触摸时赢得DRAG,那么在移动时我尝试使用以下方式移除CENTER_IN_PARENT
:
newImageView.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN :
{
imgvwDimens.removeRule(RelativeLayout.CENTER_IN_PARENT);
之后,我可以移动ImageView
,但在触摸后,它会重新定位到布局的开始。
请向我提供有用的代码或链接。谢谢。
答案 0 :(得分:0)
我明白了,实际上解决方案非常简单:)
以下代码最初可用于居中ImageView,因为我使用的是RelativeLayout:
imgvwDimens.leftMargin = rl.getWidth()/2;
imgvwDimens.topMargin = rl.getHeight()/2;