Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在片段上显示url中的图像_Android_Eclipse_Android Fragments_Imageview - Fatal编程技术网

Android 在片段上显示url中的图像

Android 在片段上显示url中的图像,android,eclipse,android-fragments,imageview,Android,Eclipse,Android Fragments,Imageview,我在互联网上到处寻找,但找不到答案,因为我不断从他们那里得到错误。我正在尝试从一个url制作一张图片,以显示在图像视图上,有什么帮助吗?非常感谢:D 这是我的片段代码 package com.TripleC.twenty20; import com.TripleC.twenty20.R; import com.TripleC.twenty20.R.layout; import android.app.Fragment; import android.os.Bundle; import andr

我在互联网上到处寻找,但找不到答案,因为我不断从他们那里得到错误。我正在尝试从一个url制作一张图片,以显示在图像视图上,有什么帮助吗?非常感谢:D

这是我的片段代码

package com.TripleC.twenty20;

import com.TripleC.twenty20.R;
import com.TripleC.twenty20.R.layout;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class PagesFragment extends Fragment {

public PagesFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
       Bundle savedInstanceState) {     
       View rootView = inflater.inflate(R.layout.fragment_pages, container, false);
       return rootView;


}   
}
我试试这个

try {
  ImageView i = (ImageView)findViewById(R.id.image);
  Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent());
  i.setImageBitmap(bitmap); 
} catch (MalformedURLException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();
}
但是它告诉我我不能使用findviewbyd“类型PagesFragment的方法findviewbyd(int)是未定义的”

这是我单击片段Logcat时出现的新错误:

12-27 03:13:32.138: E/AndroidRuntime(1989): FATAL EXCEPTION: main
12-27 03:13:32.138: E/AndroidRuntime(1989): android.os.NetworkOnMainThreadException
12-27 03:13:32.138: E/AndroidRuntime(1989):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at java.net.InetAddress.getAllByName(InetAddress.java:214)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at libcore.net.http.HttpEngine.connect(HttpEngine.java:310)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at java.net.URLConnection.getContent(URLConnection.java:190)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at java.net.URL.getContent(URL.java:447)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at com.TripleC.twenty20.PhotosFragment.onCreateView(PhotosFragment.java:30)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:829)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at android.app.BackStackRecord.run(BackStackRecord.java:635)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1397)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at android.app.FragmentManagerImpl$1.run(FragmentManager.java:426)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at android.os.Handler.handleCallback(Handler.java:615)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at android.os.Handler.dispatchMessage(Handler.java:92)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at android.os.Looper.loop(Looper.java:137)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at android.app.ActivityThread.main(ActivityThread.java:4918)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at java.lang.reflect.Method.invokeNative(Native Method)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at java.lang.reflect.Method.invoke(Method.java:511)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
12-27 03:13:32.138: E/AndroidRuntime(1989):     at dalvik.system.NativeStart.main(Native Method)
12-2703:13:32.138:E/AndroidRuntime(1989):致命异常:main
12-27 03:13:32.138:E/AndroidRuntime(1989):android.os.NetworkOnMainThreadException
12-27 03:13:32.138:E/AndroidRuntime(1989):在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
12-27 03:13:32.138:E/AndroidRuntime(1989):位于java.net.InetAddress.lookupHostByName(InetAddress.java:385)
12-27 03:13:32.138:E/AndroidRuntime(1989):at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
12-27 03:13:32.138:E/AndroidRuntime(1989):位于java.net.InetAddress.getAllByName(InetAddress.java:214)
12-27 03:13:32.138:E/AndroidRuntime(1989):在libcore.net.http.HttpConnection.(HttpConnection.java:70)
12-27 03:13:32.138:E/AndroidRuntime(1989):位于libcore.net.http.HttpConnection(HttpConnection.java:50)
12-27 03:13:32.138:E/AndroidRuntime(1989):在libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
12-27 03:13:32.138:E/AndroidRuntime(1989):位于libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
12-27 03:13:32.138:E/AndroidRuntime(1989):在libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
12-27 03:13:32.138:E/AndroidRuntime(1989):在libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315)上
12-27 03:13:32.138:E/AndroidRuntime(1989):位于libcore.net.http.HttpEngine.connect(HttpEngine.java:310)
12-27 03:13:32.138:E/AndroidRuntime(1989):位于libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
12-27 03:13:32.138:E/AndroidRuntime(1989):位于libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
12-27 03:13:32.138:E/AndroidRuntime(1989):在libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
12-27 03:13:32.138:E/AndroidRuntime(1989):位于java.net.URLConnection.getContent(URLConnection.java:190)
12-27 03:13:32.138:E/AndroidRuntime(1989):位于java.net.URL.getContent(URL.java:447)
12-27 03:13:32.138:E/AndroidRuntime(1989):位于com.TripleC.twenty20.photofragment.onCreateView(photofragment.java:30)
12-27 03:13:32.138:E/AndroidRuntime(1989):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:829)
12-27 03:13:32.138:E/AndroidRuntime(1989):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
12-27 03:13:32.138:E/AndroidRuntime(1989):在android.app.BackStackRecord.run(BackStackRecord.java:635)
12-27 03:13:32.138:E/AndroidRuntime(1989):在android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1397)
12-27 03:13:32.138:E/AndroidRuntime(1989):在android.app.FragmentManagerImpl$1.run(FragmentManager.java:426)
12-27 03:13:32.138:E/AndroidRuntime(1989):在android.os.Handler.handleCallback(Handler.java:615)上
12-27 03:13:32.138:E/AndroidRuntime(1989):在android.os.Handler.dispatchMessage(Handler.java:92)上
12-27 03:13:32.138:E/AndroidRuntime(1989):在android.os.Looper.loop(Looper.java:137)
12-27 03:13:32.138:E/AndroidRuntime(1989):在android.app.ActivityThread.main(ActivityThread.java:4918)上
12-27 03:13:32.138:E/AndroidRuntime(1989):位于java.lang.reflect.Method.Invokenactive(本机方法)
12-27 03:13:32.138:E/AndroidRuntime(1989):位于java.lang.reflect.Method.invoke(Method.java:511)
12-27 03:13:32.138:E/AndroidRuntime(1989):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
12-27 03:13:32.138:E/AndroidRuntime(1989):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
12-27 03:13:32.138:E/AndroidRuntime(1989):在dalvik.system.NativeStart.main(本机方法)

如果访问片段中的视图,则需要以
view.findViewById
的形式访问它,如下所述:

尝试如下:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
       Bundle savedInstanceState) {     
       View rootView = inflater.inflate(R.layout.fragment_pages, container, false);

    try {
      ImageView i = (ImageView)rootView.findViewById(R.id.image);
      Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent());
      i.setImageBitmap(bitmap); 
    } catch (MalformedURLException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
       return rootView;


}   

如果访问片段中的视图,则需要以
view.findViewById
的形式访问它,如下所述:

尝试如下:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
       Bundle savedInstanceState) {     
       View rootView = inflater.inflate(R.layout.fragment_pages, container, false);

    try {
      ImageView i = (ImageView)rootView.findViewById(R.id.image);
      Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent());
      i.setImageBitmap(bitmap); 
    } catch (MalformedURLException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
       return rootView;


}   

在onActivityCreated块中编写代码

  @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
           //write your code here
        }

在onActivityCreated块中编写代码

  @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
           //write your code here
        }

请提供更多的代码,你是如何从url获取图像并在图像视图上设置它的。这就是问题所在,我不知道你是如何看到这一点的。我认为你要找到这个[link][1][1]:使用SmartImageView而不是ImageView,你可以通过谷歌来找到它。请提供更多的代码,您是如何从url获取图像并将其设置在图像视图上的?这就是问题所在,我不知道您是如何看到这一点的。我认为您正在寻找此[link][1][1]:使用SmartImageView而不是ImageView,您可以通过谷歌搜索来找到它。谢谢,但当我点击它时,应用程序崩溃了fragment@Crazycriss它说的是什么??您是否试图在
PhotoFragment.onCreateView中的应用程序主线程中执行一些耗时的任务(
method?请不要下载主线程上的内容。请使用带有线程的处理程序,或者使用带有回调接口的异步线程,或者使用第三方库等。谢谢,但是当我单击该线程时,应用程序崩溃了fragment@Crazycriss它说的是什么??您是否试图在中的应用程序主线程中执行一些耗时的任务你的
PhotosFragment.onCreateView(
方法?请不要下载主线程上的内容。请使用带有线程的处理程序或带有回调接口的异步程序,或使用第三方库等。