【问题标题】:Unable to call the fragment with imageView in android无法在android中使用imageView调用片段
【发布时间】:2015-05-07 08:29:47
【问题描述】:

今天是我第一次使用碎片。而且我能够制作一个使用片段的简单应用程序,但是,有一个我无法理解或尚未注意到的问题。问题是当我使用 imageView 添加片段时应用程序崩溃。当我使用简单的文本或其他小部件时,一切正常。我在下面设置了示例代码。

我正在像这样从 Activity1 调用片段。

android.support.v4.app.FragmentManager fragmentManager2 = getSupportFragmentManager();

 android.support.v4.app.FragmentTransaction fragmentTransaction2 = fragmentManager2.beginTransaction();

   TestFragment fragment = new TestFragment();

   fragmentTransaction2.add(R.id.fragment_container, fragment,"HELLO");

   fragmentTransaction2.commit();

这是填充片段的布局

 <LinearLayout
        android:id="@+id/fragment_container"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
</LinearLayout>

这是扩展片段的简单 Activity2 类

public class Activity2 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        /** Inflating the layout for this fragment **/
        View v = inflater.inflate(R.layout.fragment_class2, null);

        return v;
    }
}

这是扩展片段的类的布局。 ps:这里的imageview会报错,但是可能是fragment类的设置有问题。我需要显示 imageView。

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


    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:id="@+id/imaew2"
        android:src="@drawable/playimage2"
 />

</LinearLayout>

这些是我得到的错误,我不确定这些错误是什么意思,但是错误指向片段

         

 

在 com.trymeagain.Activity2.onCreateView(Activity2.java:13) 在 android.support.v4.app.Fragment.performCreateView(Fragment.java:1789) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138) 在 android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740) 在 android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501) 在 android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458)

Added new Error

05-07 17:56:20.701    3173-3173/com.trymeagain E/art﹕ Throwing OutOfMemoryError "Failed to allocate a 74649612 byte allocation with 1048576 free bytes and 63MB until OOM"
05-07 17:56:20.703    3173-3173/com.trymeagain D/skia﹕ --- allocation failed for scaled bitmap
05-07 17:56:20.704    3173-3173/com.trymeagain D/AndroidRuntime﹕ Shutting down VM
05-07 17:56:20.704    3173-3173/com.trymeagain E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.trymeagain, PID: 3173
    android.view.InflateException: Binary XML file line #13: Error inflating class <unknown>
            at android.view.LayoutInflater.createView(LayoutInflater.java:633)
            at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
            at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
            at com.trymeagain.PlusOneFragment.onCreateView(Activity2.java:13)

【问题讨论】:

  • 实际的异常是什么?
  • 这更像是一个警告。 “避免将 null 作为视图根传递(需要解析膨胀布局的根元素上的布局参数)”但我发现很难解决这个 null 。
  • 你说它崩溃了。你能粘贴堆栈跟踪的顶部吗?
  • 好的!我已将堆栈跟踪添加到编辑中。
  • 您的位图可能太大。 @drawable/playimage2 的分辨率是多少?

标签: java android android-layout android-fragments


【解决方案1】:

您在图像视图中遇到异常,其中图像 playimage2 太大并且堆内存不足以分配...

解决方案-

案例1:如果需要在更高分辨率的设备上增加尺寸

如果playimage2可以patch-然后尝试减小图像的大小..你可以使用像photoshop这样的工具来这样做。然后修补图像

case2 : 如果尺寸需要像 xml 50dp*50dp 中所写的那样保持不变

尽量缩小图片大小

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    相关资源
    最近更新 更多