从表格布局上传多个图像作为可点击的图像视图



我是编程和Android的新手。我正在构建一个应用程序,允许用户通过单击TableLayout中显示的ImageViews来上传多个图像。我遇到的问题是如何在onStartActivity方法中设置每个选定图像的位图。

我可以使用setImageBitmap将单个图像设置为imageiew,但我不确定如何循环或以编程方式确定在onStartActivity中选择了哪个ImageView以便在其中显示图像。我创建了一个ImageView数组并为其分配了ImageViews,但我尝试使用该数组不显示任何图像。我还尝试在startActivityForResult后通过每个onclicklistener中的setImageBitmap方法显示ImageView - 它仅在再次选择ImageView后显示,如预期的那样。

我怎样才能做到这一点?这是我的第一篇文章。这是我的代码:

下面的 XML 布局。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#000000"
    android:orientation="vertical">
    <TextView
        android:id="@+id/postAdCommand"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:paddingBottom="10dp"
        android:text="Post An Ad"
        android:textColor="#ffffff" />
    <TextView
        android:id="@+id/textTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Title:"
        android:textColor="#ffffff" />
    <EditText
        android:id="@+id/etTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal" />
    <TextView
        android:id="@+id/tvDescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Description:"
        android:textColor="#ffffff" />
    <EditText
        android:id="@+id/etDescription"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/tvImages"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:paddingBottom="10dp"
        android:text="Upload Images:"
        android:textColor="#ffffff" />
        <TableLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal">
            <TableRow>
                <ImageView
                    android:id="@+id/imgImages"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:layout_margin="2dp"
                    android:clickable="true"
                    android:src="@drawable/add_image" />
                <ImageView
                    android:id="@+id/imgImages1"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:layout_margin="2dp"
                    android:background="#1f1f14" />
                <ImageView
                    android:id="@+id/imgImages2"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:layout_margin="2dp"
                    android:background="#1f1f14" />
            </TableRow>
            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <ImageView
                    android:id="@+id/imgImages3"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:layout_margin="2dp"
                    android:background="#1f1f14" />
                <ImageView
                    android:id="@+id/imgImages4"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:layout_margin="2dp"
                    android:background="#1f1f14" />
                <ImageView
                    android:id="@+id/imgImages5"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:layout_margin="2dp"
                    android:background="#1f1f14" />
            </TableRow>
            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <ImageView
                    android:id="@+id/imgImages6"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:layout_margin="2dp"
                    android:background="#1f1f14" />
                <ImageView
                    android:id="@+id/imgImages7"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:layout_margin="2dp"
                    android:background="#1f1f14" />
                <ImageView
                    android:id="@+id/imgImages8"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:layout_margin="2dp"
                    android:background="#1f1f14" />
            </TableRow>
            <Button
                android:id="@+id/bImages"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:text="Upload Images"
                android:textColor="#000000" />
        </TableLayout>
        <TextView
           android:id="@+id/tvVideos"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="center_horizontal"
           android:paddingBottom="10dp"
           android:paddingTop="10dp"
           android:text="Upload Images:"
           android:textColor="#ffffff" />
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:orientation="horizontal">
        <VideoView
            android:id="@+id/vidVideo"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_margin="2dp"
            android:background="@drawable/back_button_gray"
            android:clickable="true" />
        <VideoView
            android:id="@+id/vidVideo1"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_margin="2dp"
            android:background="@drawable/back_button_gray"
            android:clickable="true" />
        <VideoView
            android:id="@+id/vidVideo2"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_margin="2dp"
            android:background="@drawable/back_button_gray"
            android:clickable="true" />
    </LinearLayout>
    <Button
        android:id="@+id/bVideo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Upload Video"
        android:textColor="#000000" />
    <TextView
        android:id="@+id/tvPrice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Price:"
        android:textColor="#ffffff" />
    <EditText
        android:id="@+id/etPrice"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/bPostAd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Post Your Advertisement" />
</LinearLayout>
</ScrollView>

然后是Java代码。

import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class PostAd extends AppCompatActivity implements View.OnClickListener {
Button imageUpload;
Button vidUpload;
Button postAd;
ImageView img1, img2, img3, img4, img5, img6, img7, img8, img9;
public static final int SELECT_IMAGE = 1;
private Uri selectedImagePath;
public String selectedFileManager;
public String selectedFilePath;
Bitmap bitmap;

public ImageView[] position = {img1, img2, img3, img4, img5, img6, img7, img8, img9};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.post_ad);

    initializeVariables();
    initOnclickListeners();

}

private void initializeVariables() {
    imageUpload = (Button) findViewById(R.id.bImages);
    vidUpload = (Button) findViewById(R.id.bVideo);
    postAd = (Button) findViewById(R.id.bPostAd);
    img1 = (ImageView) findViewById(R.id.imgImages);
    img2 = (ImageView) findViewById(R.id.imgImages1);
    img3 = (ImageView) findViewById(R.id.imgImages2);
    img4 = (ImageView) findViewById(R.id.imgImages3);
    img5 = (ImageView) findViewById(R.id.imgImages4);
    img6 = (ImageView) findViewById(R.id.imgImages5);
    img7 = (ImageView) findViewById(R.id.imgImages6);
    img8 = (ImageView) findViewById(R.id.imgImages7);
    img9 = (ImageView) findViewById(R.id.imgImages8);
}
private void initOnclickListeners() {
    imageUpload.setOnClickListener(this);
    vidUpload.setOnClickListener(this);
    postAd.setOnClickListener(this);
    img1.setOnClickListener(this);
    img2.setOnClickListener(this);
    img3.setOnClickListener(this);
    img4.setOnClickListener(this);
    img5.setOnClickListener(this);
    img6.setOnClickListener(this);
    img7.setOnClickListener(this);
    img8.setOnClickListener(this);
    img9.setOnClickListener(this);
}
@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.bImages:
            break;
        case R.id.bVideo:
            break;
        case R.id.bPostAd:
            break;
        case R.id.imgImages:
            Intent image = new Intent();
            image.setType("image/*");
            image.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(image, SELECT_IMAGE);
            break;
        case R.id.imgImages1:
            Intent image1 = new Intent();
            image1.setType("image/*");
            image1.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(image1, SELECT_IMAGE);
            break;
        case R.id.imgImages2:
            Intent image2 = new Intent();
            image2.setType("image/*");
            image2.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(image2, SELECT_IMAGE);
            break;
        case R.id.imgImages3:
            Intent image3 = new Intent();
            image3.setType("image/*");
            image3.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(image3, SELECT_IMAGE);
            break;
        case R.id.imgImages4:
            Intent image4 = new Intent();
            image4.setType("image/*");
            image4.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(image4, SELECT_IMAGE);
            break;
        case R.id.imgImages5:
            Intent image5 = new Intent();
            image5.setType("image/*");
            image5.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(image5, SELECT_IMAGE);
            break;
        case R.id.imgImages6:
            Intent image6 = new Intent();
            image6.setType("image/*");
            image6.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(image6, SELECT_IMAGE);
            break;
        case R.id.imgImages7:
            Intent image7 = new Intent();
            image7.setType("image/*");
            image7.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(image7, SELECT_IMAGE);
            break;
        case R.id.imgImages8:
            Intent image8 = new Intent();
            image8.setType("image/*");
            image8.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(image8, SELECT_IMAGE);
            break;
    }
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == SELECT_IMAGE && resultCode == RESULT_OK) {
        try {
            selectedImagePath = data.getData();
            selectedFileManager = selectedImagePath.getPath();
            selectedFilePath = getPath(selectedImagePath);
            bitmap = BitmapFactory.decodeFile(selectedFilePath);
            if (position.length == 0) {
                position[0].setImageBitmap(bitmap);
            } else if (position.length == 1) {
                position[1].setImageBitmap(bitmap);
            } else if (position.length == 2) {
                position[2].setImageBitmap(bitmap);
            } else if (position.length == 3) {
                position[3].setImageBitmap(bitmap);
            } else if (position.length == 4) {
                position[4].setImageBitmap(bitmap);
            } else if (position.length == 5) {
                position[5].setImageBitmap(bitmap);
            } else if (position.length == 6) {
                position[6].setImageBitmap(bitmap);
            } else if (position.length == 7) {
                position[7].setImageBitmap(bitmap);
            } else if (position.length == 8) {
                position[8].setImageBitmap(bitmap);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
private String getPath(Uri uri) {
    String[] projection = {MediaStore.Images.Media.DATA};
    Cursor c = getContentResolver().query(uri, projection, null, null, null, null);
    if (c != null) {
        int column_index = c.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        c.moveToFirst();
        return c.getString(column_index);
    } else return null;
}
}

在您的情况下,您需要使用位置而不是使用数组来跟踪每个图像视图

imageView.setTag(position)

imageView.getTag(position)

基于它,您可以设置您的逻辑。

相关内容

  • 没有找到相关文章

最新更新