我的字符串中有一个strings.xml针对不同语言进行本地化的字符串。每个本地化字符串都使用 Html 标签进行样式设置。
使用 Android TextView,我可以通过读取字符串资源来很好地显示样式文本。
考虑到 Jetpack Compose 目前(1.0.0-rc02)不支持 Html 标签,我尝试在以下官方文档TextView中使用可组合项: https ://developer.android.com/jetpack/compose/interop/interop-apis#views-in-composeAndroidView
我尝试过的示例:
@Composable
fun StyledText(text: String, modifier: Modifier = Modifier) {
AndroidView(
modifier = modifier,
factory = { context -> TextView(context) },
update = {
it.text = HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_COMPACT)
}
)
}
Run Code Online (Sandbox Code Playgroud)
文件中的文本strings.xml:
<string name="styled_text">Sample text with <b>bold styling</b> to test</string>
Run Code Online (Sandbox Code Playgroud)
但是,使用stringResource(id = R.string.styled_text)提供的文本不带Html 标记。
有没有办法在 Jetpack Compose 中使用 Html 样式显示字符串资源中的文本? …
android kotlin android-jetpack-compose android-jetpack-compose-text
我正在学习如何拍照并将其路径保存到文件中.
根据Android开发者网站上的教程提供的方法
getoutputmediafileuri() 但是,当我尝试使用该方法时,我发现它是
不可访问或未定义,我的意思是eclipse用红线强调这个方法.我不知道
如何解决此错误.
请在下面找到代码
public class SaveCameraImageDemoActivity extends Activity {
/** Called when the activity is first created. */
Button btn01;
private Uri fileURI;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn01 = (Button) findViewById(R.id.btn01);
btn01.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intenet = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileURI = getoutputmediafileuri();
//intenet.putExtra("output", uri.getPath());
startActivityForResult(intenet,0);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个Android自定义视图,使用Kotlin绘制一个Star,将来用于创建自定义RatingBar; 所以我draw()考虑了Google的这个指南,扩展了View类并覆盖了它的方法来绘制一个Star:https:
//developer.android.com/training/custom-views/custom-drawing
之后,我尝试用线性渐变填充星形路径以实现此Post后的星形填充效果: 如何使用线性渐变填充Android中的路径?
class CustomStar constructor(context: Context, attr: AttributeSet) : View(context, attr) {
private var paint: Paint = Paint(Paint.FILTER_BITMAP_FLAG)
private var path: Path = Path()
init {
paint.shader = LinearGradient(0f, 0f, 0f, height.toFloat(), Color.YELLOW, Color.WHITE, Shader.TileMode.MIRROR)
}
override fun draw(canvas: Canvas?) {
super.draw(canvas)
// draw the star.
val min = Math.min(width, height).toFloat()
// top left
path.moveTo(0f, min * 0.3819901313f)
// top right
path.lineTo(min, min * 0.3819901313f)
// bottom left
path.lineTo(min * 0.1910982479f, min)
// …Run Code Online (Sandbox Code Playgroud) graphics android linear-gradients android-custom-view kotlin