毕加索不会加载图片(Android)

Min*_*ind 4 java xml android

我正在尝试使用Picasso将图像加载到ImageView.最基本的东西.

我知道这很简单,我很确定我做得很好,但由于某种原因它不会起作用.我的应用中没有显示照片.我发现有人遇到同样的问题(例如,Android-Picasso在Android Studio中没有加载),我的代码几乎与他们的固定版本完全相同,但它仍然不起作用.

这是我的代码.

在MainActivity.java中,我有

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if(savedInstanceState == null) {
        getFragmentManager().beginTransaction()
                .add(R.id.container, new MyFragment())
                .commit();
    }
Run Code Online (Sandbox Code Playgroud)

在MyFragment.java中,我有

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_main, container, false);
    ImageView image = (ImageView) rootView.findViewById(R.id.movie_image);
    Picasso.with(getActivity()).load(Uri.parse("http://i.imgur.com/DvpvklR.png")).into(image);

    return rootView;
}
Run Code Online (Sandbox Code Playgroud)

fragment_main.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/movie_image" />

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.admin.popmovies">

   <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

    <user-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

</manifest>
Run Code Online (Sandbox Code Playgroud)

build.gradle(module:app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.example.admin.popmovies"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
}

repositories {
    mavenCentral();
}
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激!

编辑:Logcat 我以前在毕加索的Logcat中收到了一些消息,但我再次检查,现在没有毕加索的日志.它看起来与另一个具有相同问题的线程完全一样,看起来像这样.

02-23 16:41:36.857  28865-28865/com.example.enrico.prova D/Picasso? Main        created      [R1] Request{http://www.online-image-editor.com//styles/2014/images/example_image.png}
02-23 16:41:36.858  28865-28884/com.example.enrico.prova D/Picasso? Dispatcher  enqueued     [R1]+0ms
02-23 16:41:36.876  28865-29238/com.example.enrico.prova D/Picasso? Hunter      executing    [R1]+16ms
02-23 16:41:36.883  28865-28884/com.example.enrico.prova D/Picasso? Dispatcher  batched      [R1]+25ms for error
02-23 16:41:37.112  28865-28884/com.example.enrico.prova D/Picasso? Dispatcher  delivered    [R1]+254ms
02-23 16:41:37.112  28865-28865/com.example.enrico.prova D/Picasso? Main        errored      [R1]+255ms
Run Code Online (Sandbox Code Playgroud)

更新:
我明白了!这是因为我的应用程序中的目标sdk版本是23,而我的手机正在使用KitKat.当我将gradle中的依赖项改为 compile 'com.android.support:appcompat-v7:21.0.2'而不是时compile 'com.android.support:appcompat-v7:23.1.1',它就可以了.

再次感谢所有建议!

dav*_*ady 9

我注意到当我使用模拟器时我看不到图像并使用简单的修复程序解决了它。

确保使用 https 而不是 http

https://image.tmdb.org/t/p/w185//2uNW4WbgBXL25BAbXGLnLqX71Sw.jpg
Run Code Online (Sandbox Code Playgroud)


Lap*_*mir 6

主要错误在您的清单文件中.

你应该纠正:

<user-permission android:name="android.permission.INTERNET" />

至:

<uses-permission android:name="android.permission.INTERNET" />

所有图片都可以使用!

  • 对于没有注意到该错误的人,错误是&lt;use ** r **-permission android:name =“ android.permission.INTERNET” /&gt;中的字符`r`而不是`s`。 (3认同)