2017-07-21 13 views
0

アイコン(Imageviews)をより大きなImageviewに配置したいと思います。このような何かを:異なる位置にビューを配置する

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のがクリックされたかを知ることは、閲覧者の 'onClickListener(内側' Tag')あなたは、アイコンを置きたいん ' – ZeekHuge

+0

を使用して行うことができますか?それは線形レイアウトなので、imagesViewsをリストのように保ち、アイコンを各画像の中心に置いたり、何を保存したいのですか? – ZeekHuge

+0

X:Y(100,200)、(212,50)、(523,321)のようなものはありません。 – Ribisl

答えて

0

で渡されたビューのタグを確認するには、私はあなただけで行うことができます私の位置決め問題の解決策を見つけた:

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; 
    } 
} 
1

、クリックされたビューを見つけ出すことにタグを適用し、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

関連する問題