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 库对我有帮助。谢谢朋友
我需要从我的数据库中加载小部件的背景(图片本身或链接到它的图片)。看了很多教程(这里有一个我需要的例子: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 库对我有帮助。谢谢朋友