Horizontalscrollview里添加一个布局,该布局里在添加一个自定义的View,为什么View里用Canvas画图无法显示?

来源:互联网 发布:广州网络推广哪家专业 编辑:程序博客网 时间:2024/05/16 05:01
我想自定义一个View,利用Canvas画一个折线图,但折线图有点长,单凭手机屏幕的宽度无法显示完全,所以我想在View的上层在加一个Horizontalscrollview控件,这样可以水平滑动查看折线图,可问题是添加完Horizontalscrollview控件后就不显示我画的图了。

开始能显示的Layout布局如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MyChartLine"
    android:orientation="vertical"
    >

    <LinearLayout
        android:background="#f4f4f7"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:orientation="vertical">
            <RelativeLayout
                android:id="@+id/linear"
                android:layout_height="match_parent"
                android:layout_marginTop="30dp"
                android:layout_width="wrap_content"
                >

            </RelativeLayout>
    </LinearLayout>
</LinearLayout>

在主函数引用如下:

package com.example.dell.drawchartline;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

import java.util.ArrayList;
import java.util.List;



public class MyChartLine extends Activity {

    private RelativeLayout linear;
    //private LinearLayout linear;
    //private HorizontalScrollView linear;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_chart_line);
        List<Integer> list = new ArrayList<Integer>();
        list.add(65);
        list.add(78);
        list.add(65);
        list.add(43);
        list.add(62);
        list.add(34);
        list.add(45);
        list.add(24);
        list.add(23);
        list.add(56);
        list.add(86);

        List<String> Data = new ArrayList<String>() ;
        Data.add("09-01-6-05");
        Data.add("09-01-6-05");
        Data.add("09-01-6-05");
        Data.add("09-01-6-05");
        Data.add("09-01-6-05");
        Data.add("09-01-6-05");
        Data.add("09-01-6-05");
        Data.add("09-01-6-05");
        Data.add("09-01-6-05");
        Data.add("09-01-6-05");
        linear = (RelativeLayout) findViewById(R.id.linear);
        linear.addView(new BrokeLine(this,Data,list));
    }
}

显示效果为:


但添加Horizontalscrollview空间后:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MyChartLine"
    android:orientation="vertical"
    >

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


        <HorizontalScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <RelativeLayout
                android:id="@+id/linear"
                android:layout_height="match_parent"
                android:layout_marginTop="30dp"
                android:layout_width="wrap_content"
                >

            </RelativeLayout>

        </HorizontalScrollView>




    </LinearLayout>
</LinearLayout>


画的图就不显示了,
很是奇怪!求教大神??
0 0
原创粉丝点击