Java Android标题覆盖';s操作栏内容
我有一个使用本地化的应用程序,在一些语言中,标题是为了显示屏幕的大小。我想缩放标题,如果它不适合正确的空间,它有一个较小的字体大小。我使用自定义xml文件作为标题栏,但无法根据字体大小是否合适来确定如何缩放字体大小。看看这一点,似乎我需要一个相当小的功能很多的代码,谁能帮我解决这个问题,请!我的自定义标题:Java Android标题覆盖';s操作栏内容,java,android,textview,Java,Android,Textview,我有一个使用本地化的应用程序,在一些语言中,标题是为了显示屏幕的大小。我想缩放标题,如果它不适合正确的空间,它有一个较小的字体大小。我使用自定义xml文件作为标题栏,但无法根据字体大小是否合适来确定如何缩放字体大小。看看这一点,似乎我需要一个相当小的功能很多的代码,谁能帮我解决这个问题,请!我的自定义标题: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.a
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/title_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/title_gradient"
android:orientation="vertical"
android:tag="title" >
<TextView
android:id="@+id/title_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:paddingBottom="3dp"
android:text="@string/Hearing_Test"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/solid_white"
android:textStyle="bold" />
<ImageButton
android:id="@+id/info_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="#0000"
android:padding="10dp"
android:onClick="infoView"
android:src="@drawable/info"
android:visibility="gone" >
</ImageButton>
</RelativeLayout>
我遇到的问题是,文本位于图像按钮后面,但也位于两行上,因此用户只能看到第二行的一半。如果有人能给我举个例子,给我发一个链接到某个可以帮助我的地方,那就太棒了。谢谢
编辑:
更重要的是,在nexus 5等较新的手机上,菜单位于右上角,根据我的阅读,我找不到这个按钮的宽度,所以我有点执着于如何在自定义标题栏中查找所有内容的宽度 您可以根据设备屏幕和文本长度调整textview文本大小[注意:如果文本太长,则几乎不可读。请使用长度限制并在其后显示…。],没关系,方法是这样的 计算设备显示大小并找出比例因子,然后应用以下代码调整textview文本大小
float size = textview.getTextSize();
float factor = scalefactor;
float product = size*factor;
textview.setTextSize(TypedValue.COMPLEX_UNIT_PX, product);
size = textview.getTextSize();
希望能帮到你。这看起来很完美!但是,我如何找到比例因子呢?
DisplayMetrics=newdisplaymetrics();activity.getWindowManager().getDefaultDisplay().getMetrics(度量);float scaleFactor=metrics.density
.brill,我现在将实现它,并让您知道它是如何运行的,非常感谢您的时间嗨,因此这使我的文本非常庞大,我看不到任何lol。我刚刚发现,我可以向每个值文件夹添加一个dimens xml文件,这将允许我根据本地化情况指定字体大小,因此我已准备好使用它。为什么你认为它没有正确地缩放我的文本?是的,但是你必须用文本长度除以整个乘积[float product=size*factor;],或者必须应用一些数学来获得正确的大小。