2012-02-20 53 views
1

嗨,大家好,我需要在多個位置放置單個圖像。在多個位置放置單個圖像而不創建圖像視圖

想我需要放置在佈局中的5個地方一個形象,但只使用一個<ImageView> ID

<ImageView 
     android:id="@+id/img" 
     android:layout_width="340dip" 
     android:layout_height="240dip" 
     android:layout_marginBottom="60dip" /> 

如何達致這,請幫助。

+1

給予相同的名稱多'ImageView's會造成佈局衝突。不要太sooooo懶惰... :) – tipycalFlow 2012-02-20 12:00:30

回答

0

使用此代碼爲它使用網格視圖:

Main.java:

package sra.gri.vie; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.BaseAdapter; 
import android.widget.GridView; 
import android.widget.ImageView; 
import android.widget.Toast; 
import android.widget.AdapterView.OnItemClickListener; 

public class Main extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     GridView gridview = (GridView) findViewById(R.id.gridview); 
     gridview.setAdapter(new ImageAdapter(this)); 

     gridview.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
       Toast.makeText(Main.this, "" + position, Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 


    public class ImageAdapter extends BaseAdapter { 
     private Context mContext; 

     public ImageAdapter(Context c) { 
      mContext = c; 
     } 

     public int getCount() { 
      return mThumbIds.length; 
     } 

     public Object getItem(int position) { 
      return null; 
     } 

     public long getItemId(int position) { 
      return 0; 
     } 

     // create a new ImageView for each item referenced by the Adapter 
     public View getView(int position, View convertView, ViewGroup parent) { 
      ImageView imageView; 
      if (convertView == null) { // if it's not recycled, initialize some attributes 
       imageView = new ImageView(mContext); 
       imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 
       imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
       imageView.setPadding(8, 8, 8, 8); 
      } else { 
       imageView = (ImageView) convertView; 
      } 

      imageView.setImageResource(mThumbIds[position]); 
      return imageView; 
     } 

     // references to our images 
     private Integer[] mThumbIds = { 
       R.drawable.icon, R.drawable.icon, 
       R.drawable.icon, R.drawable.icon, 
       R.drawable.icon, 

     }; 
    } 

} 

的main.xml://佈局

<?xml version="1.0" encoding="utf-8"?> 
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:columnWidth="90dp" 
    android:numColumns="auto_fit" 
    android:verticalSpacing="10dp" 
    android:horizontalSpacing="10dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center" 
/> 

緯度我知道,如果這個職位任何幫助:)

+0

嘿,我有一個圖像視圖標籤佈局,但我想再次使用它,但它應該顯示在不同的地方 – Goofy 2012-02-20 12:17:00

+0

你運行這個代碼,如果不運行它,並看到如果它給你想要的結果:) – 2012-02-20 12:20:03

0

你可以這樣做

RelativeLayout rl = (RelativeLayout) findViewById(R.id.my_relative_layout); 
ImageView iv = new ImageView(this); 
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(30, 40); 
params.leftMargin = 50; params.topMargin = 60; 
rl.addView(iv, params); 

,然後添加這R1在您的主視圖然後再改變保證金,身高等PARAM像這樣重新添加你N無次

+0

嘿謝謝,但我不明白它會改變imageview的位置? – Goofy 2012-02-20 12:39:11

0

你嘗試包括它的標籤?

img.xml

<ImageView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_home"/> 

main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
    <include layout="@layout/img"/> 
    <include layout="@layout/img"/> 
    <include layout="@layout/img"/> 
    <include layout="@layout/img"/> 
</LinearLayout 
+0

我只有一個xml ... – Goofy 2012-02-20 13:24:34