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

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM