よくあるネタですが、いまいち情報が少ない気がするので
https://github.com/tenaciousRas/android-plist-parser
をつかいます。
DownLoadして、展開、インポートします(android-plist-parser-app)だけでいいと思います。 インポートしてパッケージのプロパティ-Android-ライブラリーにチェック 使いたいパッケージのプロパティ-Android-ライブラリに加えます。 これで準備完了。
http://androidstudio.hatenablog.com/entry/2014/07/25/094428 http://androidstudio.hatenablog.com/entry/2014/07/25/103743
が参考になったが、いまいち色々な型がわからないのて、ソースを覗いてみると Array Data Date Dict Integer String True False Real がある。それぞれ(ArrayとDictは除く)setValue、getValueがあり、適当な型に変換できるみたい
上のサイトはDictでの説明だったので、Arrayに値を保持してる場合のサンプル star_body.plist
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
[text] <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <array> <real>73.41644287109375</real> <real>-0.91436767578125</real> </array> <array> <real>59.398345947265625</real> <real>116.23699951171875</real> </array> <array> <real>3.282867431640625</real> <real>224.376708984375</real> </array> <array> <real>109.42001342773438</real> <real>278.44656372070312</real> </array> <array> <real>191.569091796875</real> <real>363.59954833984375</real> </array> <array> <real>273.67523193359375</real> <real>278.56390380859375</real> </array> <array> <real>381.81494140625</real> <real>226.49664306640625</real> </array> <array> <real>326.7437744140625</real> <real>120.42990112304688</real> </array> <array> <real>311.724365234375</real> <real>0.2746734619140625</real> </array> <array> <real>192.5704345703125</real> <real>23.304428100585938</real> </array> </array> </plist> [/text] |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
[java] PListXMLHandler handler = new PListXMLHandler(); PListXMLParser parser = new PListXMLParser(); parser.setHandler(handler); try { // assets フォルダの plist ファイルを開き、パースする parser.parse(this.getBaseActivity().getAssets().open("star_body.plist")); } catch (IllegalStateException e){ // エラー処理を実装する } catch (IOException e){ // エラー処理を実装する } PList plist = ((PListXMLHandler) parser.getHandler()).getPlist(); Array array = (Array)plist.getRootElement(); for(int i=0;i<array.size();i++){ Array point_array = (Array)array.get(i); Real r_x = (Real)point_array.get(0); Real r_y = (Real)point_array.get(1); Float f_x = r_x.getValue(); Float f_y = r_y.getValue(); System.out.println("---------------------------"); System.out.println("x="+f_x+" y="+f_y); } [/java] |
star_body.plistに配列で記録している、座標を出力するだけのもの。 型チェックとかもいれたほうがよいと思います。