目前我正在使用:
// request an instance of displayMetrics,say 'dm' from androID. float densityFactor = dm.density; // pass this as a parameter using JNI call myCustomNativeMethod(densityFactor); # implementation in a 'game.c' file
我只是想知道是否可以访问androID环境参数而不使用JNI来接收它们(参数).可能是,导入一些低级NDK头文件(.h),这将帮助我直接与UI系统或其他东西进行通信?
我的意思是:
#import <androID_displayparams.h> ... float densityfactor = getdisplayParamDensity(); // <- Is this possible?
注意:这是一个好奇的问题,我知道这样的机制可能不是一个好习惯.
解决方法 使用Java Activity / GLSurfaceVIEw设置传递DPI作为参数看起来是最好的解决方案.如果你使用NativeActivity,你可以使用以下方法获得DisplayMetrics.densityDpi:
#include <androID/configuration.h>#include <androID_native_app_glue.h>#include <androID/native_activity.h>int32_t getDensityDpi(androID_apP* app) { AConfiguration* config = AConfiguration_new(); AConfiguration_fromAssetManager(config,app->activity->assetManager); int32_t density = AConfiguration_getDensity(config); AConfiguration_delete(config); return density;}
遗憾的是,没有API可以获取displayMetrics.xdpi和displayMetrics.ydpi.
总结以上是内存溢出为你收集整理的有没有办法本机访问Android DPI,而不使用JNI?全部内容,希望文章能够帮你解决有没有办法本机访问Android DPI,而不使用JNI?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)