小编Dr.*_*ton的帖子

Android Jetpack Compose:如何显示字符串资源中的样式文本

我的字符串中有一个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

18
推荐指数
2
解决办法
1万
查看次数

getoutputmediafileuri方法无法访问?

我正在学习如何拍照并将其路径保存到文件中.

根据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 uri android-intent android-camera

15
推荐指数
2
解决办法
2万
查看次数

如何在Android自定义视图中使用线性渐变填充路径

我创建了一个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

2
推荐指数
1
解决办法
790
查看次数