xml 파일에 ScrollView 와  LinearLayout 두개만 만들어 놓고

 

 <?xml version="1.0" encoding="utf-8"?> 
<ScrollView
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
>
 <LinearLayout
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:id="@+id/myLinearLayout"
     >
</LinearLayout>
</ScrollView>


 

자바파일에서

  
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        LinearLayout myLinearLayout = (LinearLayout) findViewById(R.id.myLinearLayout);
        SampleView Show_Noise = new SampleView(this);
        myLinearLayout.addView(Show_Noise);
}
class SampleView extends View {
       Paint p;
       public SampleView(Context context) {
         super(context);
         p = new Paint();
       }
       @Override 
       protected void onDraw(Canvas canvas) {
          int bh = 100, bw = 10;
          int left = 30, top = 70;
        super.onDraw(canvas);
        LinearGradient lg1 = new LinearGradient(left, top, left + bw, top + bh,
          new int[]{Color.RED, Color.YELLOW, Color.GREEN, Color.BLUE, Color.MAGENTA},
          new float[]{0.2f, 0.4f, 0.6f, 0.8f, 1f}, Shader.TileMode.MIRROR);
        p.setShader(lg1);
        canvas.drawRect(left, top, left + bw, top + bh, p);
       }
 }

 

class SampleView extends View {} 커스텀뷰클래스를 만들어서 간단한 그림을 그린후 LinearLayout에 추가 시키는 단순한 코드인데요

 

위에 코드처럼 xml 파일에서 전체를 ScrollView로 감싸고  class SampleView extends View {} 커스텀뷰로 그린 그림을 LinearLayout에 추가하면 그림이 안나오고

 

ScrollView를  빼고 class SampleView extends View {} 커스텀뷰로 그림을 그린후에 LinearLayout에 추가시키면 그림이 나옵니다

 

이건 예제라 뷰가 없는데 개발중인 어플에는 뷰가 많아서 ScrollView로 꼭 전체를 감싸야 하는데 그러면 그림을 못그리네요

 

어떻게 해야할지 전혀 모르겠습니다ㅠㅠ

 

해결책을 아시면 답변좀 꼭 부탁드립니다