├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── ic_back.png │ │ │ │ ├── ic_close.png │ │ │ │ ├── ic_eye_on.png │ │ │ │ ├── ic_land.png │ │ │ │ ├── ic_eye_off.png │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── kline_water_logo.png │ │ │ │ ├── ic_k_line_tab_more.png │ │ │ │ └── ic_k_line_tab_setting.png │ │ │ ├── drawable │ │ │ │ ├── shape_corners_radius2.xml │ │ │ │ ├── selector_tab_text.xml │ │ │ │ ├── selector_stock_setting_eye.xml │ │ │ │ └── shape_pop_bg.xml │ │ │ ├── values │ │ │ │ ├── colors.xml │ │ │ │ ├── styles.xml │ │ │ │ └── strings.xml │ │ │ └── layout │ │ │ │ ├── item_tab.xml │ │ │ │ ├── item_tab_k_line_setting.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── item_tab_k_line_more.xml │ │ │ │ ├── popup_setting.xml │ │ │ │ ├── activity_k_line.xml │ │ │ │ └── activity_k_line_land.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── github │ │ │ │ └── wyang │ │ │ │ └── klinechartdemo │ │ │ │ ├── global │ │ │ │ └── App.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── utils │ │ │ │ └── AssetUtil.java │ │ │ │ ├── widget │ │ │ │ ├── ObservableScrollView.java │ │ │ │ ├── PopupController.java │ │ │ │ └── CommonPopupWindow.java │ │ │ │ ├── KLineChartLandActivity.java │ │ │ │ └── KLineChartActivity.java │ │ ├── AndroidManifest.xml │ │ └── assets │ │ │ ├── 石头杂诗 │ │ │ ├── little.json │ │ │ └── little2.json │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── github │ │ │ └── wyang │ │ │ └── klinechartdemo │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── com │ │ └── github │ │ └── wyang │ │ └── klinechartdemo │ │ └── ExampleInstrumentedTest.java ├── proguard-rules.pro └── build.gradle ├── klinechartlib ├── .gitignore ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── github │ │ │ │ └── wyang │ │ │ │ └── klinechartlib │ │ │ │ ├── data │ │ │ │ ├── IMacd.java │ │ │ │ ├── IVolume.java │ │ │ │ ├── ISar.java │ │ │ │ └── ICandle.java │ │ │ │ ├── huobi │ │ │ │ ├── interfaces │ │ │ │ │ ├── IData.java │ │ │ │ │ ├── IDataLineSetProvider.java │ │ │ │ │ ├── KLineConstant.java │ │ │ │ │ ├── IDataLineSet.java │ │ │ │ │ └── IKLineChartAdapter.java │ │ │ │ ├── data │ │ │ │ │ ├── Volume.java │ │ │ │ │ ├── Macd.java │ │ │ │ │ ├── Candle.java │ │ │ │ │ ├── KLineEntity.java │ │ │ │ │ ├── DataLineSet.java │ │ │ │ │ └── DataLineSetProvider.java │ │ │ │ ├── draw │ │ │ │ │ ├── IChartDraw.java │ │ │ │ │ ├── ChartDraw.java │ │ │ │ │ ├── ChildDraw.java │ │ │ │ │ └── MainDraw.java │ │ │ │ ├── KLineChartAdapter.java │ │ │ │ └── helper │ │ │ │ │ ├── TextDrawHelper.java │ │ │ │ │ └── LinePathHelper.java │ │ │ │ ├── base │ │ │ │ ├── IValueFormatter.java │ │ │ │ ├── IDateFormatter.java │ │ │ │ ├── ChartAdapter.java │ │ │ │ └── BaseChartView.java │ │ │ │ ├── formatter │ │ │ │ ├── PercentValueFormatter.java │ │ │ │ ├── PriceFormatter.java │ │ │ │ ├── VolumeFormatter.java │ │ │ │ └── DateFormatter.java │ │ │ │ └── utils │ │ │ │ ├── IntegerPool.java │ │ │ │ ├── PointFPool.java │ │ │ │ └── ObjectPool.java │ │ └── res │ │ │ └── values │ │ │ ├── strings.xml │ │ │ ├── dimens.xml │ │ │ ├── colors.xml │ │ │ └── attrs.xml │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── github │ │ │ └── wyang │ │ │ └── klinechartlib │ │ │ └── ExampleInstrumentedTest.java │ └── test │ │ └── java │ │ └── com │ │ └── github │ │ └── wyang │ │ └── klinechartlib │ │ └── ObjectPoolTest.java ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── gradle.properties ├── gradlew.bat └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /klinechartlib/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':klinechartlib' 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiyang-6539/KLineChart-master/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiyang-6539/KLineChart-master/HEAD/app/src/main/res/drawable-xxhdpi/ic_back.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiyang-6539/KLineChart-master/HEAD/app/src/main/res/drawable-xxhdpi/ic_close.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_eye_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiyang-6539/KLineChart-master/HEAD/app/src/main/res/drawable-xxhdpi/ic_eye_on.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_land.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiyang-6539/KLineChart-master/HEAD/app/src/main/res/drawable-xxhdpi/ic_land.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_eye_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiyang-6539/KLineChart-master/HEAD/app/src/main/res/drawable-xxhdpi/ic_eye_off.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiyang-6539/KLineChart-master/HEAD/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /klinechartlib/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/kline_water_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiyang-6539/KLineChart-master/HEAD/app/src/main/res/drawable-xxhdpi/kline_water_logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_k_line_tab_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiyang-6539/KLineChart-master/HEAD/app/src/main/res/drawable-xxhdpi/ic_k_line_tab_more.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_k_line_tab_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiyang-6539/KLineChart-master/HEAD/app/src/main/res/drawable-xxhdpi/ic_k_line_tab_setting.png -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/data/IMacd.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.data; 2 | 3 | /** 4 | * Created by fxb on 2019-12-25. 5 | */ 6 | public interface IMacd { 7 | float getMacd(); 8 | } 9 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/data/IVolume.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.data; 2 | 3 | /** 4 | * Created by fxb on 2019-12-25. 5 | * 成交量对应图形:矩形 6 | */ 7 | public interface IVolume { 8 | float getVolume(); 9 | } 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_corners_radius2.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Mar 12 10:53:56 CST 2025 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/huobi/interfaces/IData.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.huobi.interfaces; 2 | 3 | /** 4 | * Created by fxb on 2019-12-25. 5 | */ 6 | public interface IData { 7 | 8 | float getMax(); 9 | 10 | float getMin(); 11 | } 12 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/base/IValueFormatter.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.base; 2 | 3 | /** 4 | * Created by fxb on 2019-11-08. 5 | * 数值格式化接口,价格精确 涨跌幅计算 成交量转换 6 | */ 7 | public interface IValueFormatter { 8 | String format(float value); 9 | } 10 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/data/ISar.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.data; 2 | 3 | /** 4 | * Created by fxb on 2019-12-25. 5 | * SAR指标对应图:空心圆(算法复杂,后续拓展) 6 | */ 7 | public interface ISar { 8 | float getSar(); 9 | 10 | boolean isIncrease(); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_tab_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_stock_setting_eye.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_pop_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/base/IDateFormatter.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.base; 2 | 3 | /** 4 | * Created by fxb on 2019-11-06. 5 | * 时间转换器接口,参数毫秒值 6 | * 数据时间不推荐使用字符串(类似 yyyy-MM-dd HH:mm:ss.SSS) 7 | * 分时线 K线(分钟,日K,周K,月K)格式化后的String不相同 8 | */ 9 | public interface IDateFormatter { 10 | String format(long time); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | #FF2E7DF6 8 | #AA2E7DF6 9 | #999999 10 | 11 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/data/ICandle.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.data; 2 | 3 | /** 4 | * Created by fxb on 2019-11-11. 5 | * 蜡烛图对应图形:上影线 + 矩形 + 下影线 6 | */ 7 | public interface ICandle { 8 | 9 | float getOpen();//开盘价 10 | 11 | float getHigh();//最高价 12 | 13 | float getLow();//最低价 14 | 15 | float getClose();//收盘价 16 | 17 | long getTime();//时间 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/wyang/klinechartdemo/global/App.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartdemo.global; 2 | 3 | import android.app.Application; 4 | 5 | import com.zhouyou.http.EasyHttp; 6 | 7 | /** 8 | * Created by fxb on 2019-12-13. 9 | */ 10 | public class App extends Application { 11 | 12 | @Override 13 | public void onCreate() { 14 | super.onCreate(); 15 | 16 | EasyHttp.init(this); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/test/java/com/github/wyang/klinechartdemo/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartdemo; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/item_tab.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | -------------------------------------------------------------------------------- /klinechartlib/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | KLineChartLib 3 | 4 | 时间 5 | 6 | 7 | 8 | 9 | 涨跌额 10 | 涨跌幅 11 | 成交量 12 | 13 | 14 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/huobi/interfaces/IDataLineSetProvider.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.huobi.interfaces; 2 | 3 | import com.github.wyang.klinechartlib.huobi.data.KLineEntity; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Created by fxb on 2019-12-29. 9 | */ 10 | public interface IDataLineSetProvider { 11 | 12 | IDataLineSet get(String name); 13 | 14 | void calculateAll(List data); 15 | 16 | void calculateLast(List data, boolean replace); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/wyang/klinechartdemo/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartdemo; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.support.v7.app.AppCompatActivity; 6 | import android.view.View; 7 | 8 | public class MainActivity extends AppCompatActivity { 9 | 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | setContentView(R.layout.activity_main); 14 | 15 | } 16 | 17 | public void start(View view) { 18 | startActivity(new Intent(this, KLineChartActivity.class)); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/formatter/PercentValueFormatter.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.formatter; 2 | 3 | 4 | import com.github.wyang.klinechartlib.base.IValueFormatter; 5 | 6 | import java.text.DecimalFormat; 7 | 8 | /** 9 | * Created by *** on 2019-08-24. 10 | */ 11 | public class PercentValueFormatter implements IValueFormatter { 12 | private DecimalFormat format = new DecimalFormat("0.00%"); 13 | 14 | @Override 15 | public String format(float value) { 16 | String format = this.format.format(value); 17 | return format.startsWith("-") ? format : "+" + format; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/huobi/data/Volume.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.huobi.data; 2 | 3 | import com.github.wyang.klinechartlib.data.IVolume; 4 | import com.github.wyang.klinechartlib.huobi.interfaces.IData; 5 | 6 | /** 7 | * Created by fxb on 2019-12-25. 8 | */ 9 | public class Volume implements IVolume, IData { 10 | public float volume; 11 | 12 | @Override 13 | public float getVolume() { 14 | return volume; 15 | } 16 | 17 | @Override 18 | public float getMax() { 19 | return volume; 20 | } 21 | 22 | @Override 23 | public float getMin() { 24 | return 0; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/utils/IntegerPool.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.utils; 2 | 3 | /** 4 | * Created by fxb on 2019-11-29. 5 | */ 6 | public class IntegerPool extends ObjectPool { 7 | private static int i; 8 | private static IntegerPool pool; 9 | 10 | static { 11 | pool = new IntegerPool(32, 16); 12 | } 13 | 14 | public static IntegerPool getPool() { 15 | return pool; 16 | } 17 | 18 | private IntegerPool(int initialCapacity, int expansionCapacity) { 19 | super(initialCapacity, expansionCapacity); 20 | } 21 | 22 | @Override 23 | public Integer createObject() { 24 | return i++; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/huobi/data/Macd.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.huobi.data; 2 | 3 | import com.github.wyang.klinechartlib.data.IMacd; 4 | import com.github.wyang.klinechartlib.huobi.interfaces.IData; 5 | 6 | /** 7 | * Created by fxb on 2019-12-25. 8 | */ 9 | public class Macd implements IMacd, IData { 10 | public float macd; 11 | 12 | public Macd(float macd) { 13 | this.macd = macd; 14 | } 15 | 16 | @Override 17 | public float getMacd() { 18 | return macd; 19 | } 20 | 21 | @Override 22 | public float getMax() { 23 | return macd; 24 | } 25 | 26 | @Override 27 | public float getMin() { 28 | return macd; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | 15 | 16 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/formatter/PriceFormatter.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.formatter; 2 | 3 | import android.support.annotation.NonNull; 4 | 5 | import com.github.wyang.klinechartlib.base.IValueFormatter; 6 | 7 | import java.text.DecimalFormat; 8 | 9 | /** 10 | * Created by fxb on 2019-11-08. 11 | */ 12 | public class PriceFormatter implements IValueFormatter { 13 | private DecimalFormat format; 14 | 15 | public PriceFormatter() { 16 | format = new DecimalFormat("0.00"); 17 | } 18 | 19 | public PriceFormatter(@NonNull DecimalFormat format) { 20 | this.format = format; 21 | } 22 | 23 | @Override 24 | public String format(float value) { 25 | return format.format(value); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /klinechartlib/src/main/java/com/github/wyang/klinechartlib/formatter/VolumeFormatter.java: -------------------------------------------------------------------------------- 1 | package com.github.wyang.klinechartlib.formatter; 2 | 3 | import android.support.annotation.NonNull; 4 | 5 | import com.github.wyang.klinechartlib.base.IValueFormatter; 6 | 7 | import java.text.DecimalFormat; 8 | 9 | /** 10 | * Created by fxb on 2019-11-25. 11 | */ 12 | public class VolumeFormatter implements IValueFormatter { 13 | private DecimalFormat format; 14 | 15 | public VolumeFormatter() { 16 | format = new DecimalFormat("0"); 17 | } 18 | 19 | public VolumeFormatter(@NonNull DecimalFormat format) { 20 | this.format = format; 21 | } 22 | 23 | @Override 24 | public String format(float value) { 25 | return format.format(value); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_tab_k_line_setting.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 16 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /klinechartlib/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10sp 4 | 11sp 5 | 1dp 6 | 6dp 7 | 8dp 8 | 1dp 9 | 0.5dp 10 | 0.5dp 11 | 15dp 12 | 17dp 13 | 10dp 14 | 0.8dp 15 | 2.5dp 16 | 3dp 17 | -------------------------------------------------------------------------------- /klinechartlib/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 |