AndroidPlot - XYplot не отображается на графическом макете в XML

Я довольно новичок в области разработки для Android, однако я сделал несколько очень простых приложений, чтобы понять, как будет выглядеть рабочий процесс в среде.

У меня проблемы с запуском примера программы под названием SimpleXYPlotExample, и вот код, manifest, main.xml и activity.java, соответственно. Я знаю, что это какая-то ошибка пользователя, но было бы здорово, если бы кто-нибудь дал мне несколько полезных советов о том, что я делаю неправильно.

Сначала весь код был сломан, но я понял, что забыл импортировать библиотеку. Теперь, когда я это сделал, я пытаюсь запустить программу на своих нексусах, и она просто вылетает при входе.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example"
          android:versionCode="1"
          android:versionName="1.0">

    <uses-sdk
    android:minSdkVersion="6"
    android:targetSdkVersion="16"/>

    <application android:label="SimpleXYPlotExample" 
                 android:icon="@drawable/icon" 
                 android:debuggable="true"
                 android:hardwareAccelerated="false">
        <activity android:name=".MyActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest> 
<?xml version="1.0" encoding="utf-8"?>

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

    <com.androidplot.xy.XYPlot
    android:id="@+id/mySimpleXYPlot"
    android:layout_width="fill_parent"
    android:layout_height="150px"
    android:layout_marginTop="10px"
    android:layout_marginLeft="10px"
    android:layout_marginRight="10px"
    andsroidplot.title="A Simple XYPlot Example"
    androidplot.ticksPerRangeLabel="4"
    androidplot.ticksPerDomainLabel="2"
    androidplot.gridPadding="4dp|4dp|4dp|4dp"
    />
</LinearLayout>
    package com.example;

    import java.util.Arrays;

    import android.app.Activity;
    import android.os.Bundle;

    import com.androidplot.series.XYSeries;
    import com.androidplot.ui.AnchorPosition;
    import com.androidplot.xy.LineAndPointFormatter;
    import com.androidplot.xy.SimpleXYSeries;
    import com.androidplot.xy.XLayoutStyle;
    import com.androidplot.xy.XYPlot;
    import com.androidplot.xy.YLayoutStyle;


    public class MyActivity extends Activity
    {

        private XYPlot plot;

        @Override
        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            // initialize our XYPlot reference:
            plot = (XYPlot) findViewById(R.id.mySimpleXYPlot);

            // add a new series
            XYSeries mySeries = new SimpleXYSeries(
                    Arrays.asList(0, 25, 55, 2, 80, 30, 99, 0, 44, 6),
                    SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, "series1");
            plot.addSeries(mySeries, new LineAndPointFormatter(
                    getApplicationContext(), R.xml.f1));

            // reposition the domain label to look a little cleaner:
            plot.position(plot.getDomainLabelWidget(), // the widget to position
                    45,                                // x position value, in this case 45 pixels
                    XLayoutStyle.ABSOLUTE_FROM_LEFT,   // how the x position value is applied, in this case from the left
                    0,                                 // y position value
                    YLayoutStyle.ABSOLUTE_FROM_BOTTOM, // how the y position is applied, in this case from the bottom
                    AnchorPosition.LEFT_BOTTOM);       // point to use as the origin of the widget being positioned

            plot.centerOnRangeOrigin(60);
            plot.centerOnDomainOrigin(5);
        }

}

Этому может способствовать тот факт, что сюжет даже не отображается на графическом макете. Вот как это выглядит с этим кодом:

http://imgur.com/qYl96Zi

Как видите, я импортировал библиотеку androidplot. Пожалуйста, порекомендуйте.

1 ответ

Решение

Снимок экрана выглядит из графического редактора eclipse, который, как упоминалось в исключении, не поддерживает метод setShadowLayer и, следовательно, не будет отображаться. Это всего лишь ограничение в Eclipse, а не ошибка в вашем коде или библиотеке.

Обычно, чтобы иметь возможность ответить на вопросы о том, почему Androidplot дает сбой, вам нужно предоставить соответствующую трассировку стека. Однако я заметил эту опечатку в вашем XML:

andsroidplot.title="A Simple XYPlot Example"

Что касается получения работающего редактора WYSIWYG, я лично хотел бы попробовать IntelliJ IDEA или Android Studio (построенную на текущей версии EAP IntelliJ IDEA). Оба являются бесплатными, и оба находятся в (ИМХО) намного превосходящих IDE.

Другие вопросы по тегам