有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

一个方法中的java更改特定imageView

基本上我有5个图像视图和5个文件。我想将这些文件分配给每个imageView,而不必每次都键入代码——这样效率很低

我有一台自动取款机:

if(i==1){
    File imageFile = new File(path+files.get(i));
    checkOrientation(imageFile);
    if(files.get(i).endsWith("mp4")) {
        Bitmap bMap = ThumbnailUtils.createVideoThumbnail(imageFile.getAbsolutePath(),
                MediaStore.Video.Thumbnails.MINI_KIND);
        imageView2.setImageBitmap(bMap);
    } else {
        imageView2.setImageURI(null);
        imageView2.setImageURI(Uri.parse(path + files.get(i)));
        imageView2.setRotation(rotate);
    }
    imageView2.invalidate();
    Log.d("onCreate", "imageView2 set: " + path+files.get(i) + " rotation: " + rotate);
} if(i==2){
    File imageFile = new File(path+files.get(i));
    checkOrientation(imageFile);
    if(files.get(i).endsWith("mp4")){
        Bitmap bMap = ThumbnailUtils.createVideoThumbnail(imageFile.getAbsolutePath(),
                        MediaStore.Video.Thumbnails.MINI_KIND);
        imageView3.setImageBitmap(bMap);
    } else {
        imageView3.setImageURI(null);
        imageView3.setImageURI(Uri.parse(path + files.get(i)));
        imageView3.setRotation(rotate);
    }
    imageView3.invalidate();
    Log.d("onCreate", "imageView3 set: " + path+files.get(i) + " rotation: " + rotate);
}

是否有一种方法可以使一个方法使用此代码,但正确的imageView是根据输入参数编辑的? 例如:

public void setImageView(int view, int i, File imageFile){
    if(files.get(i).endsWith("mp4")) {
        Bitmap bMap = ThumbnailUtils.createVideoThumbnail(imageFile.getAbsolutePath(),
                MediaStore.Video.Thumbnails.MINI_KIND);
        imageView(view).setImageBitmap(bMap);
    } else {
        imageView(view).setImageURI(null);
        imageView(view).setImageURI(Uri.parse(path + files.get(i)));
        imageView(view).setRotation(rotate);
    }
    imageView(view).invalidate();
    Log.d("onCreate", "imageView set: " + path+files.get(i) + " rotation: " + rotate);
}

这有可能吗?我试着像上面那样编写代码,但它不喜欢imageView(视图)

我只是想避免重复编写相同的代码行

谢谢

凯西


共 (1) 个答案

  1. # 1 楼答案

    在看到@SpringBreaker的回复后,我写了以下代码:

    setimageView(imageView1, i, imageFile);
    
    private void setimageView(ImageView imageView, int i, File imageFile) {
        if(files.get(i).endsWith("mp4")){
            Bitmap bMap = ThumbnailUtils.createVideoThumbnail(imageFile.getAbsolutePath(),
                    MediaStore.Video.Thumbnails.MINI_KIND);
            imageView.setImageBitmap(bMap);
        } else {
            imageView.setImageURI(null);
            imageView.setImageURI(Uri.parse(path + files.get(i)));
            imageView.setRotation(rotate);
        }
        imageView.invalidate();
        Log.d("onCreate", "imageView set: " + path+files.get(i) + " rotation: " + rotate);
    }