How to access the resource of com.android.internal.R
16lz
2021-01-23
最近在做一个android player项目,想要默认使用android的internal资源,比如:
com.android.internal.R.layout.media_controller但是,直接使用会报编译错误:
com.android.internal.R does not exist
You cannot import the internal android class, as the internal.R class isn't visible.
但是可以通过其他的方式来访问,如下:
int mediaControllerId = Resources.getSystem().getIdentifier("media_controller", "layout", "android");View layout = ((LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(mediaControllerId, this);同理,可以访问:
mPrevButton = (ImageButton) layout.findViewById(Resources.getSystem().getIdentifier("prev","id", "android"));mProgress = (ProgressBar) layout.findViewById(Resources.getSystem().getIdentifier("mediacontroller_progress","id", "android"));mPauseButton = (ImageButton) layout.findViewById(Resources.getSystem().getIdentifier("pause","id", "android"));
getIdentifier的使用方式如下,会返回name对应的id,
Resources.getSystem().getIdentifier(name, defType, defPackage)
而上述name/defType/defPackage如何得到?可以从源码中获得相应的信息
更多相关文章
- android post方式传递参数并获取返回数据代码
- android 数据存储总结及各种存储方式
- Android 获得屏幕宽高的三种方式
- 如何修改Android5.1系统USB连接方式默认MTP
- Android 日历方式显示的日期选择组件
- Android四种点击事件和五中存储方式
- android 定时请求(两种实现方式)
- android使用Animation的两种方式