田舎暮らしエンジニアの備忘録

2021.07.31
XML
カテゴリ: Android開発
​​とりあえず描画だけできた 前回

・今回ハマったこと
MPAndroidChartで横軸を日付の文字列にしようとした。
横軸を文字列にするには IndexAxisValueFormatter というのを使えばいいらしい。
いざ、サンプルコードを調べて真似してみるもののなんか出てて使えない…。



情報古くて今では使えないのかとか色々想像してしばらく悩んだ末にふと気付いた…
import書いてなかった~!
ので以下を追加。
import  com.github.mikephil.charting.formatter.*;
ネットに書かれているサンプルコードってimportのことまで書いてないから、慣れてないとよく忘れるね。


以下が今回のコード

public class AndroidChart extends Activity
{
    /** アクティビティが最初に作成されるときに呼び出されます。 */
    @ Override
public void onCreate ( Bundle savedInstanceState )
    {
super . onCreate (savedInstanceState);
setContentView ( R . layout . android_chart );

LineChart Chart  = (LineChart)  findViewById ( R . id . lineChartExample );

Chart . getAxisRight (). setEnabled ( false );
Chart . getAxisLeft (). setEnabled ( true );
Chart . setDrawGridBackground ( true );
Chart . setEnabled ( true );

Chart . setTouchEnabled ( true );
Chart . setPinchZoom ( true );
Chart . setDoubleTapToZoomEnabled ( true );
Chart . setScaleEnabled ( true );
Chart . getLegend (). setEnabled ( true );

//X軸周り
XAxis xAxis  =  Chart . getXAxis ();
xAxis . setDrawLabels ( true );
xAxis . setPosition ( XAxis . XAxisPosition . BOTTOM );
xAxis . setDrawGridLines ( true );

ArrayList < LineDataSet barDataSets  =  new ArrayList < LineDataSet >();
ArrayList < Entry values_total  =  new ArrayList < Entry >();

AndroidChart . CsvRead readData  =  new  AndroidChart. CsvRead ();
readData . reader ( getApplicationContext ());
for ( int i = 0 ;i< readData . assetList . size ();i++)
        {
values_total . add ( new Entry (i, readData . assetList . get (i). total ));
        }
IndexAxisValueFormatter indexFormatter  =  new IndexAxisValueFormatter ( readData . getDateList ());
xAxis . setValueFormatter (indexFormatter);

ListTitleData legend  =  new ListTitleData ();
LineDataSet values_totalDataSet  =  new LineDataSet (values_total,  legend . legend_total );
values_totalDataSet . setColor ( ColorTemplate . COLORFUL_COLORS [ 3 ]);

barDataSets . add (values_totalDataSet);

LineData lineData  =  new LineData (values_totalDataSet);

Chart . setData (lineData);

Chart . invalidate ();
Chart . animateY ( 2000 , Easing . EaseInBack );
    }

public class AssetListData
    {
String date
int total

public void setDate ( String date ) {  this . date  = date; }
public String getDate () {  return this . date ; }

public void setTotal ( int total ) {  this . total  = total; }
public int getTotal () {  return this . total ; }
    }

public class ListTitleData
    {
String legend_date  =  "日付" ;
String legend_total  =  "合計" ;
    }

public class CsvRead
    {
List < AssetListData assetList  =  new ArrayList < AssetListData >();

public ArrayList < String getDateList () {
ArrayList < String label  =  new ArrayList < String >();
for  ( int i  =  0 ; i <  assetList . size (); i++)
label . add ( assetList . get (i). date );
return  label;
            }


public void reader ( Context context ) {
android . content . res . AssetManager assetManager  =  context . getResources (). getAssets ();
try
            {
java . io . InputStream inputStream  =  assetManager . open ( "data.csv" );
java . io . InputStreamReader inputStreamReader  =  new  java. io . InputStreamReader (inputStream);
java . io . BufferedReader bufferReader  =  new  java. io . BufferedReader (inputStreamReader);

String line ;
while  ((line =  bufferReader . readLine ()) !=  null ) {
AssetListData data  =  new AssetListData ();
String []  RowData  =  line . split ( "," );

data . setDate ( RowData [ 0 ]);
data . setTotal ( Integer . valueOf ( RowData [ 1 ]));
assetList . add (data);
                }
bufferReader . close ();
            }  catch  ( java.io.IOException e ) {
e . printStackTrace ();
            }
         }
    }
}
​​



沖縄ジェラート 8個入りセット送料無料 敬老の日 おしゃれ 夏ギフト 詰め合わせ 選べる やんばるジェラート ヤンバルジェラート ジェラート バレンタインデー ホワイトデー 父の日 のし 内祝い ​​
パッド付のノートパソコン入れ、自慢のデザイン、旅行者が望むすべての機能が備わっています、15インチサイズのノートパソコン入れる





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2021.07.31 01:27:05
コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: