2014-02-05 3 views
0

나는 처음으로 응용 프로그램을 작성하는 초보자입니다. 상단과 하단에 이미지가 있고 그 사이에 큰 텍스트 블록이있는 페이지를 갖고 싶습니다. 모든 것을 세로로 스크롤하고 싶습니다. 무슨 일이 있어도 에뮬레이터는 페이지에 액세스 할 때 앱을 중지합니다.이미지/텍스트/이미지가 포함 된 스크롤링 페이지

<?xml version="1.0" encoding="utf-8"?> 

<Scrollview 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

<RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

<TableLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:stretchColumns="1"> 

    <TableRow> 
    <ImageView 
      android:layout_margin="6dip" 
      android:id="@+id/Francis_Top" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:src="@drawable/fhpaint"> 
    </ImageView> 
    </TableRow> 

    <TableRow> 
    <TextView 
      android:id="@+id/help_page_intro" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textColor="#FFFFFF" 
      android:background="#2E2D2B" 
      android:textSize="18sp" 
      android:text="@string/francisinfo" 
      android:padding="2dip"> 
    </TextView> 
    </TableRow> 

    <TableRow> 
    <ImageView 
      android:layout_margin="6dip" 
      android:id="@+id/Francis_Bottom" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:src="@drawable/fhp"> 
    </ImageView> 
    </TableRow>    

</TableLayout>  
</RelativeLayout>   
</Scrollview> 

모든 도움을 주시면 감사하겠습니다.

종류에 관해서는, 이안

편집 : 내 로그에 오류 :

02-05 18:44:24.391: I/Process(836): Sending signal. PID: 836 SIG: 9 
02-05 18:44:32.041: D/gralloc_goldfish(1098): Emulator without GPU emulation detected. 
02-05 18:44:32.151: D/dalvikvm(1098): GC_FOR_ALLOC freed 42K, 4% free 3213K/3332K, paused 45ms, total 49ms 
02-05 18:44:32.201: D/dalvikvm(1098): GC_FOR_ALLOC freed 6K, 4% free 3572K/3692K, paused 36ms, total 36ms 
02-05 18:44:32.321: I/Choreographer(1098): Skipped 61 frames! The application may be doing too much work on its main thread. 
02-05 18:44:37.911: D/dalvikvm(1098): GC_FOR_ALLOC freed 483K, 16% free 3234K/3812K, paused 106ms, total 121ms 
02-05 18:44:37.971: I/dalvikvm-heap(1098): Grow heap (frag case) to 4.503MB for 1334776-byte allocation 
02-05 18:44:38.311: D/dalvikvm(1098): GC_FOR_ALLOC freed 11K, 12% free 4526K/5116K, paused 88ms, total 89ms 
02-05 18:44:38.471: D/dalvikvm(1098): GC_FOR_ALLOC freed <1K, 11% free 4585K/5116K, paused 114ms, total 116ms 
02-05 18:44:38.471: I/dalvikvm-heap(1098): Grow heap (frag case) to 5.157MB for 635812-byte allocation 
02-05 18:44:38.781: D/dalvikvm(1098): GC_FOR_ALLOC freed <1K, 10% free 5206K/5740K, paused 83ms, total 84ms 
02-05 18:44:39.461: I/Choreographer(1098): Skipped 112 frames! The application may be doing too much work on its main thread. 
02-05 18:44:40.741: I/Choreographer(1098): Skipped 108 frames! The application may be doing too much work on its main thread. 
02-05 18:44:41.151: I/Choreographer(1098): Skipped 34 frames! The application may be doing too much work on its main thread. 
02-05 18:44:45.811: D/AndroidRuntime(1098): Shutting down VM 
02-05 18:44:45.811: W/dalvikvm(1098): threadid=1: thread exiting with uncaught exception (group=0xb3a4fba8) 
02-05 18:44:45.981: E/AndroidRuntime(1098): FATAL EXCEPTION: main 
02-05 18:44:45.981: E/AndroidRuntime(1098): Process: com.androidbook.ds1, PID: 1098 
02-05 18:44:45.981: E/AndroidRuntime(1098): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.androidbook.ds1/com.androidbook.ds1.QuizFrancisActivity}: android.view.InflateException: Binary XML file line #3: Error inflating class Scrollview 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.app.ActivityThread.access$800(ActivityThread.java:135) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.os.Handler.dispatchMessage(Handler.java:102) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.os.Looper.loop(Looper.java:136) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at java.lang.reflect.Method.invoke(Method.java:515) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at dalvik.system.NativeStart.main(Native Method) 
02-05 18:44:45.981: E/AndroidRuntime(1098): Caused by: android.view.InflateException: Binary XML file line #3: Error inflating class Scrollview 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.app.Activity.setContentView(Activity.java:1929) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at com.androidbook.ds1.QuizFrancisActivity.onCreate(QuizFrancisActivity.java:10) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.app.Activity.performCreate(Activity.java:5231) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  ... 11 more 
02-05 18:44:45.981: E/AndroidRuntime(1098): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.Scrollview" on path: DexPathList[[zip file "/data/app/com.androidbook.ds1-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.androidbook.ds1-2, /system/lib]] 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.view.LayoutInflater.createView(LayoutInflater.java:559) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:652) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
02-05 18:44:45.981: E/AndroidRuntime(1098):  ... 20 more 

이렇게 빨리 응답 해 주셔서 감사합니다! 이 로그가 도움이되기를 바랍니다. 이안

+0

귀하의 logcat 오류를 게시하십시오. – 2Dee

+0

LogCat 화면에 무엇이 있는지 알려주십시오. 오류에 대해 더 많이 볼 수 있다면 더 많이 도울 수 있습니다. – GrouchyPanda

답변

0

중요한 것부터 먼저 : 여기

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

    <LinearLayout 
        android:orientation="vertical" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"> 

     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:scaleType="centerCrop" 
      android:src="@drawable/fhpaint"/> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:padding="16dp" 
      android:gravity="center" 
      android:text="@string/francisinfo"/> 

     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:scaleType="centerCrop" 
      android:src="@drawable/fhp"/> 

    </LinearLayout> 

</ScrollView> 

은 예를 들어 스크린 샷입니다 : 당신이 크게 당신이 LinearLayout을 사용하고있는 레이아웃 단순화 할 수 있다고 생각

enter image description here

다음, 다음이 필요합니다 귀하의보기 컨트롤러, 안드로이드 세계에서 조각으로 알려져 있습니다. 다른 라이프 사이클 메소드 중 Fragments는 일반적으로 onCreateView (LayoutInflater inflater, ViewGroup 컨테이너, Bundle savedInstanceState)를 재정 의하여 해당 뷰를 표시해야합니다. 예 :

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

    ... other code here ... 

    return v; 
} 

위의 코드를 구현 한 후에는 이미지와 텍스트를 최소한 참조해야합니다.

+0

더 빨리 답변을 드리지 못해 죄송합니다. 그 일을 해냈습니다! 도와 주셔서 대단히 감사합니다. 나는이 시점에서 며칠 동안 붙어있어서 정말 고마워. – user3277432

+0

여러분을 환영합니다! 기꺼이 도와주세요. 또한, 나의 대답이 정확하다고 판명되면, 그것을 인정 된 것으로 표시하십시오. 감사! –

관련 문제