我知道如何使用自定义视图(EditText或TextView)来描边文字但我无法实现像这样的美丽的东西,这是使用Photoshop完成的.是的,它也有外影.
到目前为止我所做的是调整笔画宽度和笔画连接样式.但是,如果我增加笔划宽度,则笔划会发生整个文本.据我所搜索,有一个名为MagicTextView的库,但它也无法提供上述结果.
更新:我根据@pskink的建议调整了一些内容.它现在有效.但是我不能再拖了.如果我拖动EditText,会出现一些像这样的奇怪线条.

这是代码:
@Override public void onDraw(Canvas canvas) {
final int x = this.getLeft();
final int y = this.getBottom();
mText = this.getText().toString();
p.setStrokeWidth(30);
p.setStyle(Style.STROKE);
p.setStrokeJoin(Join.ROUND);
p.setColor(0xffffffff);
canvas.drawText(mText, x, y, p);
p.setStyle(Style.FILL);
p.setColor(0xff000000);
canvas.drawText(mText, x, y, p);
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一个复杂的文本视图,这意味着同一视图中的文本样式不同。一些文本需要在其正上方有一个小图像。但文本应该仍然存在(不仅仅是替换),所以简单的 ImageSpan 不会做。我不能使用 TextViews 的集合,因为我需要文本换行(或者我错了,这可以用 TextViews 来完成?)。
我试图在相同的字符上组合两个跨度,但是虽然这适用于文本样式,但不适用于 ImageSpan。
我要做什么:
有任何想法吗?
阅读这篇博文:http : //old.flavienlaurent.com/blog/2014/01/31/spans/ 帮助很大,但我仍然不在那里。
我在一个项目中使用可折叠工具栏,我试图textStyle将展开的折叠工具栏标题设置为bold。
出于某种原因,我可以使用自定义文本外观更改几乎任何内容,除了textStyle. 有没有人有关于这个问题的任何信息?我发现很难在互联网上搜索。我以编程方式尝试也无济于事。
<!-- style resource -->
...
<style name="Toolbar_Title" parent="@android:style/TextAppearance.Large">
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textSize">@dimen/detail_title_text_size</item>
<item name="android:textStyle">bold</item>
</style>
...
<!-- layout file -->
...
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:expandedTitleMarginBottom="16dp"
app:expandedTitleMarginStart="16dp"
app:expandedTitleTextAppearance="@style/Toolbar_Title"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
...
Run Code Online (Sandbox Code Playgroud) 在我的主页中,在返回语句之前构建小部件中,我使用以下代码。如果我在主页中创建另一个小部件,我必须在每个 return 语句之前复制以下代码。如果您创建另一个无状态/有状态 dart 文件,我需要再次复制以下代码。
我的问题是如何在 Flutter 中创建全局 TextStyle?我不想更改主题数据,都想在我的 flutter 项目中使用我的 TextStyle。谢谢。
TextStyle myNormalStyle = TextStyle(
fontSize: SizerUtil.deviceType == DeviceType.Mobile ? 14.0.sp : 13.0.sp,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.normal,
color: Colors.black);
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 TextInputLayout 提示文本样式更改为粗体。我使用TextAppearance更改了样式中的颜色和其他提示样式:
<style name="MyTextInputLayoutTheme" parent="@android:style/TextAppearance">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">match_parent</item>
<item name="android:textColorHint">@color/black_50</item>
<item name="colorControlNormal">@color/green</item>
<item name="hintAnimationEnabled">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我试图设置
<item name="android:textStyle">normal</item>
Run Code Online (Sandbox Code Playgroud)
或者
<item name="android:textStyle">bold</item>
Run Code Online (Sandbox Code Playgroud)
但它不起作用。提示文本始终具有编辑文本的样式(如果edittext为粗体,则自动具有粗体提示,如果不是,则提示正常):
我想更改TextFiled() 可组合项中选定文本的文本样式( fontSize , color , fontWeight ,...) ,并使用 android jetpack compose中的按钮。
(主要问题是,当我更改所选文本的文本样式时,TextField无法保存它,或者当我在 TextField 中添加/删除字母时,TextField会删除以前的文本样式。)
换句话说,当重组过程发生时,文本样式在 TextField() 中消失
我的代码是:
@Composable
fun Show() {
val inputText = remember{ mutableStateOf(TextFieldValue("This is a annotated text text"))}
Column(
modifier = Modifier.fillMaxSize().padding(5.dp) ,
horizontalAlignment = Alignment.CenterHorizontally
) {
//=================== TextField
CustomTextField(textInput = inputText)
//==================== Button
Button(onClick = {
inputText.value = changeSegmentColor(inputText.value)
}) {
Text(text = "Change the text style of selected text")
}
//====================== …Run Code Online (Sandbox Code Playgroud) selectedtext textfield rich-text-editor textstyle android-jetpack-compose
我有一个 CupertinoApp,我想TextStyle对我的应用程序的所有屏幕/对象应用自定义。例如,我会撒谎为所有文本小部件和对话框小部件设置一个字体系列,并在我的所有应用程序中使用该字体。我希望将它设置一次CupertinoThemeData或CupertinoTextThemeData但到目前为止我没有快乐。
注意:我可以为每个文本设置样式,但是我想设置一次
我正在开发一个在所有屏幕中使用大写文本的应用程序,我认为如果我可以添加如下内容,那么它的生产效率会很高:
...
return MaterialApp(
title: '***',
theme: ThemeData(
primaryColor: Color(0xFF101639),
textTheme: Theme.of(context).textTheme.copyWith(
body1: TextStyle(
color: Colors.white,
//*****{uppercase should be set here.. where it can take effects in all parts of the app}
),
),
),
home: HomePage(),
);
...
Run Code Online (Sandbox Code Playgroud)
textstyle ×8
android ×4
flutter ×3
text ×2
android-collapsingtoolbarlayout ×1
custom-view ×1
dart ×1
hint ×1
selectedtext ×1
styles ×1
textfield ×1
textview ×1
themes ×1