首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从R.attr引用返回颜色资源id的Android测试方法

是通过使用Android的资源解析器来实现的。在Android中,R.attr是一个资源属性的引用,它指向一个特定的资源值,如颜色、尺寸等。要从R.attr引用返回颜色资源id,可以按照以下步骤进行测试:

  1. 首先,在测试类中创建一个Context对象,用于获取资源。
  2. 使用Context的obtainStyledAttributes方法获取一个TypedArray对象,该对象包含了指定主题中的属性值。
  3. 使用TypedArray的getResourceId方法,传入R.attr引用作为参数,获取对应的资源id。
  4. 最后,使用Context的getColor方法,传入资源id作为参数,获取颜色资源的实际值。

下面是一个示例代码:

代码语言:txt
复制
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;

@RunWith(AndroidJUnit4.class)
public class ColorResourceTest {

    @Test
    public void testColorResource() {
        // 获取测试上下文
        Context context = InstrumentationRegistry.getInstrumentation().getContext();

        // 获取主题属性值
        TypedArray typedArray = context.getTheme().obtainStyledAttributes(new int[]{R.attr.colorPrimary});

        // 获取颜色资源id
        int colorResourceId = typedArray.getResourceId(0, 0);

        // 获取颜色资源的实际值
        int color = context.getResources().getColor(colorResourceId);

        // 断言颜色值是否与预期相等
        assertEquals(Color.RED, color);

        // 释放资源
        typedArray.recycle();
    }
}

在这个示例中,我们使用了Android Testing Support Library提供的InstrumentationRegistry来获取测试上下文。然后,我们通过obtainStyledAttributes方法获取了主题中R.attr.colorPrimary属性的值,并使用getResourceId方法获取了对应的资源id。最后,我们使用getColor方法获取了颜色资源的实际值,并使用断言来验证颜色值是否与预期相等。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,我无法提供具体的链接。但是,腾讯云作为一家知名的云计算服务提供商,提供了丰富的云计算产品和解决方案,可以通过访问腾讯云官方网站来了解更多相关信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Kotlin入门(24)如何自定义视图

Android提供了丰富多彩的视图与控件,已经能够满足大部分的业务需求,然而计划赶不上变化,总是有意料之外的情况需要特殊处理。比如PagerTabStrip无法在布局文件中指定文本大小和文本颜色,只能在代码中通过setTextSize和setTextColor方法来设置。这用起来殊为不便,如果它能像TextView那样直接在布局指定文本大小和颜色就好了;要想让PagerTabStrip支持该特性,就得通过自定义视图来实现,而自定义视图的第一种途径便是自定义属性。 仍旧以翻页标题栏PagerTabStrip举例,现在给它新增两个自定义属性,分别是文本颜色textColor,以及文本大小textSize。下面给出Java编码的自定义步骤: 1. 在res\values目录下创建attrs.xml,文件内容如下所示,其中declare-styleable的name属性值表示新视图的名称,两个attr节点表示新增的两个属性分别是textColor和textSize:

03
领券