zoukankan      html  css  js  c++  java
  • 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

      

      

  • 相关阅读:
    梦想还需有,因它必实现——发现最新版iOS漏洞,OverSky团队专访
    细数iOS上的那些安全防护
    互联网业务安全之通用安全风险模型
    TaintDroid剖析之IPC级污点传播
    Android安全开发之通用签名风险
    Angular问题02 创建模块失败、 angular-cli名称问题、升级angular-cli
    Etyma01 ced ceed cess
    Angular19 自定义表单控件
    Angular18 RXJS
    Angular17 Angular自定义指令
  • 原文地址:https://www.cnblogs.com/zhou-guobao/p/5145714.html
Copyright © 2011-2022 走看看