为什么我无法在 Android Studio 中显示来自 Url 的图像?
Why Can't I Show an Image From Url in Android Studio?
出于某种原因,我无法在 android 工作室中显示来自 URL 的图像。无论我尝试什么都没有发生。首先我尝试了 "Picasso",然后我尝试了 "Universal Image Loader",然后我尝试了 "Firebase Storage" 和 "Glide"。但我无法在互联网上显示其中任何一个图像。应用程序使用这 4 种方法(Picasso、Universal Image Loader、Firebase Storage),但它不显示图像。
下面我只展示picasso,所以问题不长,但如果你想要我可以全部展示。有什么我忽略了吗?或者可能需要一些我不知道的简单设置?所以无论我尝试什么,可能会阻止我显示图像。
Gradle
apply plugin: 'com.android.application'
android { compileSdkVersion 29 buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.deneme.goruntudeneme"
minSdkVersion 19
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}}
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.squareup.picasso:picasso:2.71828'
}
XML
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<ImageView
android:id="@+id/my_image_view"
android:layout_width="350dp"
android:layout_height="350dp"
android:scaleType="centerCrop">
</ImageView></LinearLayout>
Java
public class MainActivity extends AppCompatActivity {
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView=(ImageView)findViewById(R.id.my_image_view);
Picasso.get().load("https://via.placeholder.com/500").into(imageView);
}}
权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
当您使用 picaso 加载图像时,结尾 url 必须以类似(.jpg 或 .png)的扩展名结尾,例如“http://i.imgur.com/DvpvklR.png”。
粘贴这个 url 然后尝试它的工作问题是 "Your URL is wrong"
正如@Ashis 所说,当我在清单中添加以下行时,我的问题就解决了。
android:usesCleartextTraffic="true"
出于某种原因,我无法在 android 工作室中显示来自 URL 的图像。无论我尝试什么都没有发生。首先我尝试了 "Picasso",然后我尝试了 "Universal Image Loader",然后我尝试了 "Firebase Storage" 和 "Glide"。但我无法在互联网上显示其中任何一个图像。应用程序使用这 4 种方法(Picasso、Universal Image Loader、Firebase Storage),但它不显示图像。
下面我只展示picasso,所以问题不长,但如果你想要我可以全部展示。有什么我忽略了吗?或者可能需要一些我不知道的简单设置?所以无论我尝试什么,可能会阻止我显示图像。
Gradle
apply plugin: 'com.android.application'
android { compileSdkVersion 29 buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.deneme.goruntudeneme"
minSdkVersion 19
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}}
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.squareup.picasso:picasso:2.71828'
}
XML
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<ImageView
android:id="@+id/my_image_view"
android:layout_width="350dp"
android:layout_height="350dp"
android:scaleType="centerCrop">
</ImageView></LinearLayout>
Java
public class MainActivity extends AppCompatActivity {
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView=(ImageView)findViewById(R.id.my_image_view);
Picasso.get().load("https://via.placeholder.com/500").into(imageView);
}}
权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
当您使用 picaso 加载图像时,结尾 url 必须以类似(.jpg 或 .png)的扩展名结尾,例如“http://i.imgur.com/DvpvklR.png”。 粘贴这个 url 然后尝试它的工作问题是 "Your URL is wrong"
正如@Ashis 所说,当我在清单中添加以下行时,我的问题就解决了。
android:usesCleartextTraffic="true"