说明如何从或多或少的 30 行代码中做到这一点,这很难。但我可以建议你搜索如何实现它搜索文章。点击here并关注文章。
希望能帮到你:-)
编辑
要解决lineChart错误,声明如下:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var lineChart: LineChart
}
确保导入:
import com.github.mikephil.charting.charts.LineChart
如果您在查找导入时遇到问题,请转到应用 build.gradle 并粘贴它:
repositories {
google()
mavenCentral()
maven { url 'https://jitpack.io' }
}
和:
allprojects {
repositories {
google()
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
编辑 2
如果你想遵循链接示例,必须声明 lineGraph。在这种情况下,线图只不过是activity_layout.xml 中声明的对象的id。事实上,您需要在您的activity_layout.xml 中添加这段代码:
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/lineChart"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:padding="9dp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
添加后,您必须转到 mainactivity 并在 onCreate 中写入:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val lineChart = findViewById<LineChart>(R.id.lineChart)
}
要解决其他两个问题,把文章读到最后。其实CustomMarker是一个定义如下的类:
class CustomMarker(context: Context, layoutResource: Int): MarkerView(context, layoutResource) {
override fun refreshContent(entry: Entry?, highlight: Highlight?) {
val value = entry?.y?.toDouble() ?: 0.0
var resText = ""
if(value.toString().length > 8){
resText = "Val: " + value.toString().substring(0,7)
}
else{
resText = "Val: " + value.toString()
}
tvPrice.text = resText
super.refreshContent(entry, highlight)
}
override fun getOffsetForDrawingAtPoint(xpos: Float, ypos: Float): MPPointF {
return MPPointF(-width / 2f, -height - 10f)
}
}