Android 如何引用com.android.internal.R目录下的资源

Android 如何引用com.android.internal.R目录下的资源

项目需求

有一个资源跟系统上的一个资源相同,想要引用它:frameworks/base/core/res/res/drawable/ic_text_dot.xml

文件名称:ic_text_dot.xml

文件的具体内容:

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:inset="10dp">
    <shape android:shape="oval">
        <solid android:color="?android:attr/textColorSecondary" />
        <size android:width="4dp" android:height="4dp" />
    </shape>
</inset>

该资源在代码中的引用是:com.android.internal.R.drawable.ic_text_dot

遇到的问题

但是不知道为什么,我在项目中用Java代码调用这个资源的时候,一直提示失败,无法找到目标:

        ImageView imageView = (ImageView) findViewById(R.id.img);
        imageView.setImageDrawable(getDrawable(com.android.internal.R.drawable.ic_text_dot));  
        //com.android.internal.R cannot be resolved to a variable

出现问题的原因

You cannot access id's of com.android.internal.R at compile time, but you can access the defined internal resources at runtime and get the resource by name.

解决的办法是:

        ImageView imageView = (ImageView) findViewById(R.id.img);
        imageView.setImageResource(Resources.getSystem().getIdentifier("ic_text_dot", "drawable", "android"));

参考:http://stackoverflow.com/questions/3486819/how-to-resolve-the-error-com-android-internal-r-cannot-be-resolved-when-i-usin

  

  

 

转载于:https://www.cnblogs.com/zhou-guobao/p/5145714.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值