将位置视图放在不同的位置

问题描述:

我想将图标(图像浏览)放在更大的图像视图上。这样的事情:将位置视图放在不同的位置

ArrayList<Icon> icons = new ArrayList<Icons>; 
for(Icon icon : icons){ 
    ImageView iv = new ImageView(this); 
    iv.setLayoutParams(new LinearLayout.LayoutParams(
           LinearLayout.LayoutParams.WRAP_CONTENT, 
           LinearLayout.LayoutParams.WRAP_CONTENT)); 
    iv.setImageBitmap(icon.getBitMap()); 
    iv.setPosition(icon.getX(),icon.getY()); //Thats the line I need to know 
    myLayout.addView(iv); 
} 

但问题是我找不到一种方法,使其效率和知道哪个imageview被点击。

+1

会意点击了哪个ImageView的可以使用'Tag'内进行查看的'onClickListener()' – ZeekHuge

+0

你要把图标在哪里?它是一个线性布局,你想保持像一个列表的图像视图,并保持在每个图像的中心或什么? – ZeekHuge

+0

没有像X:Y(100,200)或(212,50)或(523,321)这样的东西,你知道我的意思吗? – Ribisl

通过视图的标签,我发现我的定位问题的解决方案,你可以这样做:

ImageView imageView = (ImageView)findViewById(R.id.imageView); 
imageView.setX(xPosition); 
imageView.setY(YPosition); 

问题与,哪个图片被点击,回答@霍布乔很好,这个样本!

ArrayList<Icon> icons = new ArrayList<Icons>; 
for(int i = 0; i < icons.size(); i++) { 
    Icon icon = icons.get(i); 
    ImageView iv = new ImageView(this); 
    iv.setTag(i); 
    iv.setLayoutParams(new LinearLayout.LayoutParams(
           LinearLayout.LayoutParams.WRAP_CONTENT, 
           LinearLayout.LayoutParams.WRAP_CONTENT)); 
    iv.setImageBitmap(icon.getBitMap()); 
    iv.setOnClickListener(new View.OnClickListener({ 
     @Override 
     public void onClick(View view) { 
      iconClicked(view); 
     } 
    }); 
    myLayout.addView(iv); 
} 


public void iconClicked(View view) { 
    switch((Integer) view.getTag()) 
     case 0: 
      //... 
      break; 
     case 1: 
      //... 
      break; 
     default: 
      break; 
    } 
} 

为了弄清楚单击的视图,应用标签,然后检查与onClick()

ArrayList<Icon> icons = new ArrayList<Icons>; 
for(int i = 0; i < icons.size(); i++) { 
    Icon icon = icons.get(i); 
    ImageView iv = new ImageView(this); 
    iv.setTag(i); 
    iv.setLayoutParams(new LinearLayout.LayoutParams(
           LinearLayout.LayoutParams.WRAP_CONTENT, 
           LinearLayout.LayoutParams.WRAP_CONTENT)); 
    iv.setImageBitmap(icon.getBitMap()); 
    iv.setOnClickListener(new View.OnClickListener({ 
     @Override 
     public void onClick(View view) { 
      iconClicked(view); 
     } 
    }); 
    myLayout.addView(iv); 
} 


public void iconClicked(View view) { 
    switch((Integer) view.getTag()) 
     case 0: 
      //... 
      break; 
     case 1: 
      //... 
      break; 
     default: 
      break; 
    } 
} 
+0

你有一个想法如何解决x,y问题,但这个工作正常 – Ribisl

+0

你可以更具体地说明你需要什么放置,@Ribisl?我看到你在试图定位它们,但我不确定问题是什么。 –

+0

没有“setPosition”方法 – Ribisl