中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

圖片,布局,string等)打進jar包

發布時間:2020-07-03 05:50:08 來源:網絡 閱讀:371 作者:鷺明 欄目:移動開發

解決如下:由于打包出來的jar只有源代碼的.class 文件,不包含資源文件,我們就把jar包中用到的資源放到你使用

該jar的工程里面。然后通過反射即可,這里給出反射類:

public class MResource {

public static int getIdByName(Context context, String className, String resName) {
    String packageName = context.getPackageName();
    int id = 0;
    try {
        Class r = Class.forName(packageName + ".R");
        Class[] classes = r.getClasses();
        Class desireClass = null;
        for (Class cls : classes) {
            if (cls.getName().split("\\$")[1].equals(className)) {
                desireClass = cls;
                break;
            }
        }
        if (desireClass != null) {
            id = desireClass.getField(resName).getInt(desireClass);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return id;
}

}

這里演示項目中打開jar中的activity的實例

這里給出jar中activity的代碼:

public class JarActivity extends AppCompatActivity {

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(MResource.getIdByName(this, "layout", "jar_layout"));
    ImageView mPlayerLogo = (ImageView) this.findViewById(MResource.getIdByName(this,
            "id", "logo"));
    mPlayerLogo.setImageResource(MResource.getIdByName(this, "drawable", "ic_launcher"));
}

}

**這里:利用反射根據資源名字獲取資源ID加載布局+設置圖片

在項目中打開jar的JarActivity的實現代碼如下:

注:由于jar沒有布局文件和資源文件,所以需要把布局(jar_layout)copy到項目中,aar則不需要**

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    findViewById(R.id.btn_jar).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setClassName(getApplication(), "com.zhh.librarydemo.JarActivity");
            startActivity(intent);
        }
    });
}

}

jar_layout布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<ImageView
    android:id="@+id/logo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</LinearLayout>

在清單文件中注冊:

<activity android:name="com.zhh.librarydemo.JarActivity"/>

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德化县| 中超| 灵丘县| 屏山县| 加查县| 丹巴县| 玉山县| 恭城| 蕲春县| 闻喜县| 新宁县| 梅河口市| 名山县| 文成县| 湘阴县| 五华县| 河东区| 江山市| 四川省| 大荔县| 澄城县| 沁水县| 满洲里市| 芦溪县| 三门峡市| 丹巴县| 灵宝市| 舒城县| 平乡县| 梁河县| 崇左市| 金乡县| 汉寿县| 拜泉县| 左贡县| 上犹县| 陇南市| 萝北县| 古浪县| 嘉兴市| 汉阴县|