2 Stimmen

Wählen Sie ein Bild aus dem Raster und zeigen Sie es in einem anderen Bereich an

Ich erstelle eine Galerie. Ich habe ein Gridlayout, das alle Bilder anzeigt. Jetzt möchte ich tun, dass, wenn wir ein Bild auswählen, dann eine andere Absicht starten, die ich getan habe, aber jetzt möchte ich, dass ausgewählte Bild in dieser neuen Absicht anzuzeigen.

Vielen Dank im Voraus.

2voto

Dipak Keshariya Punkte 22039

Bitte verwenden Sie den untenstehenden Code von gridview.

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" />

ImageAdapter.java

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(Constants.mThumbIds[position]);
        return imageView;
    }
}

Konstanten.java

public class Constants {
    // references to our images
    private Integer[] mThumbIds = {
            R.drawable.sample_2, R.drawable.sample_3,
            R.drawable.sample_4, R.drawable.sample_5,
            R.drawable.sample_6, R.drawable.sample_7,
            R.drawable.sample_0, R.drawable.sample_1,
            R.drawable.sample_2, R.drawable.sample_3,
            R.drawable.sample_4, R.drawable.sample_5,
            R.drawable.sample_6, R.drawable.sample_7,
            R.drawable.sample_0, R.drawable.sample_1,
            R.drawable.sample_2, R.drawable.sample_3,
            R.drawable.sample_4, R.drawable.sample_5,
            R.drawable.sample_6, R.drawable.sample_7
    };
}

MainActivity.java

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        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) {
                Intentt mInDisplay=new Intent(MainActivity.this, DisplayActivity.class);
                mInDisplay.putExtra("Index", position);
                startActivity(mInDisplay);
            }
        });
    }
}

display.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ImageView
        android:id="@+id/mImgView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>

DisplayActivity.java

public class DisplayActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Bundle bdl=getIntent().getExtras();
        int index=bdl.getInt("Index");      
        ImageView mImage = (ImageView) findViewById(R.id.mImgView1);
        mImage.setImageResource(Constants.mThumbIds[index]);
    }
}

Und deklarieren Sie beide Aktivitäten in Ihrer Android-Manifestdatei.

0voto

Furzel Punkte 606

Sie können für jedes Bild einen Klick-Listener über setOnClickListener kann der Hörer dann die Absicht senden, die neue Aktivität zu starten.

Wir wollen auch den Bildpfad mit der Absicht senden. Um dies zu erreichen, können Sie verwenden putExtra in Ihrem Intent mit einem von Ihnen gewählten Namen als erstem Parameter und dem Bildpfad als zweitem Parameter.

Sie sollten dann in der Lage sein, den Pfad des Abbilds wiederherzustellen, indem Sie getStringExtra in Ihrer neuen Tätigkeit. Sie müssen die Absicht abrufen, indem Sie getIntent() in Ihrer Aktivität aufrufen

Viel Glück!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X