如果我指定一个整数值来使用java代码更改TextView的某个文本大小,则该值将被解释为pixel(px).现在有谁知道如何在sp中分配它?
我使用HTML列表和CSS创建了一个水平菜单.除非您将鼠标悬停在链接上,否则一切都会正常工作.你看,我为链接创建了一个大胆的悬停状态,现在由于大胆的大小差异,菜单链接发生了变化.
我遇到与此SitePoint帖子相同的问题.但是,该帖子没有适当的解决方案.我到处寻找解决方案而找不到解决方案.当然,我不可能是唯一一个试图这样做的人.
有没有人有任何想法?
PS:我不知道菜单项中文本的宽度,所以我不能只设置li项的宽度.
这是我的代码:
HTML:
.nav { margin: 0; padding: 0; }
.nav li {
list-style: none;
display: inline;
border-left: #ffffff 1px solid;
}
.nav li a:link, .nav li a:visited {
text-decoration: none;
color: #000;
margin-left: 8px;
margin-right: 5px;
}
.nav li a:hover{
text-decoration: none;
font-weight: bold;
}
.nav li.first { border: none; }
Run Code Online (Sandbox Code Playgroud)
CSS:
<ul class="nav">
<li class="first"><a href="#">item 0</a></li>
<li><a href="#">item 1</a></li>
<li><a href="#">item 2</a></li>
<li><a href="#">item 3</a></li>
<li><a href="#">item 4</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud) 我有一个按钮和一个自己的视图的混合,我使用Paint.setTextSize()设置我的文本大小.我希望文本大小看起来像Button上的文本一样.现在,我当然可以将按钮的文本大小设置为例如18sp,并在我的视图中使用18.但是为了更好的集成,我只想知道,按钮的文本大小是"正常".从我的测试来看,它应该像12sp一样,但我没有找到任何关于此的文档.
保留默认大小会在视图上留下太小的文本.
也许我应该用另一种方法解决这个问题?
我有一个textView
带有数字(变量)和a的内部string
,我怎么能给出比这个大一号的string
?代码:
TextView size = (TextView)convertView.findViewById(R.id.privarea_list_size);
if (ls.numProducts != null) {
size.setText(ls.numProducts + " " + mContext.getString(R.string.products));
}
Run Code Online (Sandbox Code Playgroud)
我想ls.numproducts的大小与文本的其余部分不同.怎么做?
我知道,已经讨论了1000次,但我不能调整不同屏幕尺寸的文字大小.我尝试在自定义样式中使用'sp'作为大小单位:
<style name="CustumButtonStyle" parent="@android:style/Widget.Button">
...
<item name="android:textSize">30sp</item>
...
</style>
Run Code Online (Sandbox Code Playgroud)
在2.7 QVGA中它看起来不错:
但在7in WSVGA中它看起来像这样:
我试图使用'sp'和'dp'同样的结果.
您能解释一下如何在任何屏幕上使这些按钮看起来一样吗?
完整的自定义按钮样式
<style name="CustumButtonStyle" parent="@android:style/Widget.Button">
<item name="android:background">@drawable/custom_button</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_margin">3dp</item>
<item name="android:textColor">#ffffff</item>
<item name="android:gravity">center</item>
<item name="android:textSize">30sp</item>
<item name="android:textStyle">bold</item>
<item name="android:shadowColor">#000000</item>
<item name="android:shadowDx">1</item>
<item name="android:shadowDy">1</item>
<item name="android:shadowRadius">2</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在我的应用主题中,我有
<item name="android:buttonStyle">@style/CustumButtonStyle</item>
Run Code Online (Sandbox Code Playgroud)
还有我的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:background="@drawable/grid"
android:gravity="center"
android:orientation="vertical" android:layout_height="fill_parent">
<Button
android:id="@+id/buttonContinue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/continue_game" android:layout_marginTop="3dp" android:layout_marginBottom="3dp"/>
<Button
android:id="@+id/buttonNewGame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/buttonContinue"
android:layout_alignRight="@+id/buttonContinue"
android:layout_below="@+id/buttonContinue"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/new_game" android:layout_marginTop="3dp" android:layout_marginBottom="3dp"/>
<Button …
Run Code Online (Sandbox Code Playgroud) 我想改变文本的大小Toolbar
.因为在我的应用程序中,Toolbar
文本对于横向和纵向模式都有不同的大小.
是否可以更改文本的文本大小Toolbar
?
我无法更改设计库tablayout(android.support.design.widget.TabLayout)选项卡的文本大小.
我设法通过在TabLayout中指定tabTextAppearance来更改它
app:tabTextAppearance="@style/MyTabLayoutTextAppearance"
Run Code Online (Sandbox Code Playgroud)
以下风格
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
<item name="android:textSize">14sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但我有2个副作用:
1)我丢失了所选标签的强调色
2)标签文本不再大写.
在官方文档似乎并没有回答这个问题,或者我不明白.
元素(没关系AlertDialog
,它也发生在任何TextView上):
TextView tv = (TextView) dialog.findViewById(android.R.id.message);
Run Code Online (Sandbox Code Playgroud)
不一致性.案例A:
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
// or tv.setTextSize(14); does the same
Run Code Online (Sandbox Code Playgroud)
案例B:
tv.setTextSize(getResources().getDimension(R.dimen.text_size_small));
// TypedValue makes no difference either.
Run Code Online (Sandbox Code Playgroud)
values/dimens.xml
它在哪里:
<dimen name="text_size_small">14sp</dimen>
Run Code Online (Sandbox Code Playgroud)
结果:字体大小不一样,从资源检索时显得更大.我可能错过了什么,所以我的错误是什么,最重要的是:为什么?
- 更新到第一个答案 -
固定数字只是一个例子,因为没有人会在代码中硬编码固定的字体大小.那么让我重新解释一下这个问题:
为什么如果从代码中获取资源,文本大小比从XML布局获取资源时要大?此外,问题仍然是相同的:如何在代码中检索14sp单元并使其与布局XML中设置的14sp单元保持一致?我没有接受答案,因为它没有告诉我如何在代码中使用资源中的sp单位来处理文本大小.
在此布局上,即使尺寸相同,字体大小也不同:
<TextView
android:id="@+id/my_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/TextBody" />
Run Code Online (Sandbox Code Playgroud)
styles.xml:
<style name="TextBody">
<item name="android:textSize">@dimen/text_size_small</item>
<item name="android:lineSpacingMultiplier">1.1</item>
<item name="android:textColor">@color/body_text_1</item>
<item name="android:textIsSelectable">true</item>
<item name="android:linksClickable">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
看到text_size_small吗?为什么在这种情况下字体大小比使用相同dimen
资源的代码小?
将textView放在指定中心的x和y坐标上时遇到问题.首先,我尝试在textView中设置文本,并使用此链接移动视图的宽度和高度 .
但它不起作用,我想尝试别的东西.我想知道是否有一种方法可以获得指定文本在textView中的大小?我的意思是,我知道文本和textSize,我如何获得textView将采用的宽度和高度?
(NSString)sizeWithFont;
对于那些了解iPhone开发者的方法有点像.
有一个ActionBar
在每个Android 4.0的应用程序,它得到了一个称号.我需要减小这个尺寸.但我不明白我是怎么做到的,因为ActionBar
它没有为它提供公共方法.备注:我不想使用自定义视图.