在不使用 TextView 对象的情况下使用 Canvas 绘制文本
Draw Text using Canvas without using TextView object
我想创建自定义视图。该视图将具有使用 canvas 绘制的文本。绘制的文本没有使用任何 TextView 对象。
我尝试使用 canvas 绘制文本。
这是我的代码:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
class CustomView(context: Context , attributeSet: AttributeSet) : View(context,attributeSet) {
private val paint: Paint = Paint().apply {
style = Paint.Style.FILL
color = Color.WHITE
textSize = 30f
textAlign = Paint.Align.CENTER
isAntiAlias = true
}
override fun onDraw(canvas: Canvas?) {
super.onDraw(canvas)
canvas!!.drawText("Custom View",0f,0f,paint)
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.shaheen.drawtext.CustomView
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
我试过此代码,但该视图中未绘制文本。它显示空白屏幕。
这样,文字就画好了。
在这里,我将油漆的颜色更改为 Black
颜色
private val paint: Paint = Paint().apply {
style = Paint.Style.FILL_AND_STROKE
color = Color.BLACK
textSize = headingTextSize
textAlign = Paint.Align.LEFT
typeface = Typeface.create(Typeface.DEFAULT, Typeface.BOLD)
isAntiAlias = true
}
我想创建自定义视图。该视图将具有使用 canvas 绘制的文本。绘制的文本没有使用任何 TextView 对象。
我尝试使用 canvas 绘制文本。 这是我的代码:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
class CustomView(context: Context , attributeSet: AttributeSet) : View(context,attributeSet) {
private val paint: Paint = Paint().apply {
style = Paint.Style.FILL
color = Color.WHITE
textSize = 30f
textAlign = Paint.Align.CENTER
isAntiAlias = true
}
override fun onDraw(canvas: Canvas?) {
super.onDraw(canvas)
canvas!!.drawText("Custom View",0f,0f,paint)
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.shaheen.drawtext.CustomView
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
我试过此代码,但该视图中未绘制文本。它显示空白屏幕。
这样,文字就画好了。
在这里,我将油漆的颜色更改为 Black
颜色
private val paint: Paint = Paint().apply {
style = Paint.Style.FILL_AND_STROKE
color = Color.BLACK
textSize = headingTextSize
textAlign = Paint.Align.LEFT
typeface = Typeface.create(Typeface.DEFAULT, Typeface.BOLD)
isAntiAlias = true
}