我想在圆圈内绘制一个文本,前提是文本应该在圆圈的中心正确匹配。实际上我没有得到一个通用的方法/方法来在中心制作文字。 此外,它不应该取决于文本是大写还是小写。
我的尝试: -
textPaint.TextAlign = Paint.Align.Center; // basic need.
之后,我试图获得字体的Ascent和Descent并得到它们的一半并将此值移动到下面的文本。但它没有集中:(
var fontAscent = -textPaint.Ascent(); // default value is negative for ascent
var fontDescent = textPaint.Descent();
注意: - 我在中心得到圆圈,所以它的中心点是正确的。
任何想法我该怎么做。
答案 0 :(得分:1)
我会尝试
将此行添加到您的布局
<TextView
android:layout_width = "100dp"
android:layout_height = "100dp"
android:background = "@drawable:circle"
android:text = "Lorem Ipsum"
android:gravity = "center" />
然后为可绘制文件夹创建一个形状。
<shape shape="circle" stroke_width = "1dp" stroke_color = "@android:color:black" />
应该有一些拼写错误。我在没有IDE的情况下编写它。
祝你好运。
答案 1 :(得分:1)
我的应用程序中有类似的观点,monas。而我所做的就是布局。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.huteri.monas"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<CircleView
android:id="@+id/piegraph"
android:layout_width="330dp"
android:layout_height="330dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
<TextView
android:id="@+id/sumpie_cat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:fontFamily="sans-serif-condensed"
android:paddingBottom="50dp"
android:textAlignment="center" />
<TextView
android:id="@+id/sumpie_percentage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:textAlignment="center"
android:textSize="30sp"
app:typeface="roboto_black" />
<TextView
android:id="@+id/sumpie_total"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:paddingTop="50dp"
android:textAlignment="center"
app:typeface="roboto_slab_light" />
</RelativeLayout>
嗯,我必须承认这不是最好的解决方案,但它对我有用。您可以在布局中尝试
答案 2 :(得分:0)
试试这个。
在drawable文件夹中创建一个文件作为circle.xml并复制此代码
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<gradient
android:angle="270"
android:endColor="#00FFFFFF"
android:startColor="#00FFFFFF" />
</shape>
并且TextView
集Background
使用此android:background="@drawable/circle"