ImageView 问题(Android Studio,Java)

ImageView issue (Android Studio, Java)

我需要从我的数据库中加载小部件的背景(图片本身或链接到它的图片)。看了很多教程(这里有一个我需要的例子:https://youtu.be/mOhNdP1QZ7E),还是无法解决这个问题。图片不显示。 java class 代码 100% 来自上面的教程。也试过其他的。

code example

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class content_scrolling extends AppCompatActivity
{
 ImageView imageView;
 Bitmap myBitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content_scrolling);

    imageView1=(ImageView)findViewById(R.id.d1back);

    loadimage(imageView);
}

public void loadimage(View view)
{
    imageView1=(ImageView)findViewById(R.id.d1back);

     class ImageLoadTask extends AsyncTask<Void, Void, Bitmap>
     {

        private String url;
        private ImageView imageView;

        public ImageLoadTask(String url, ImageView imageView) {
            this.url = url;
            this.imageView = imageView;
        }

        @Override
        protected Bitmap doInBackground(Void... params) {
            try {
                URL connection = new URL(url);

                InputStream input = connection.openStream();
                myBitmap = BitmapFactory.decodeStream(input);
                Bitmap resized = Bitmap.createScaledBitmap(myBitmap, 1000, 400, true);
                return resized;
            } catch (Exception e) {
                Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_LONG).show();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Bitmap result) {
            super.onPostExecute(result);
            imageView.setImageBitmap(result);
        }

    }

    ImageLoadTask obj=new ImageLoadTask("http://....png",d1back);
    obj.execute();
}

}`

你可以简单地使用一个库,它就是 Glide。

1.添加对 build.gradle (app)

的依赖
implementation 'com.github.bumptech.glide:glide:4.13.0'

2。将以下代码添加到 java 文件。

String url="https://www.google.com" //add your URL here
ImageView imageView = findViewById(R.id.imageViewId);
Glide.with(this).load(url).into(imageView);

您可以使用 Picasso 或 Glide 在图像视图中轻松加载任何类型的图像。

使用毕加索:

implementation 'com.squareup.picasso:picasso:2.71828'


Picasso.get()
    .load(imageUrl)
    .into(test_imageview)

使用 Glide:

implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'


Glide.with(this)
.load(imageUrl)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(test_imageview)

Glide 库对我有帮助。谢谢朋友