我在Google Maps Activity中使用这个方法来调整标记的大小:
public Bitmap resizeMapIcons(String iconName,int width, int height){
Bitmap imageBitmap = BitmapFactory.decodeResource(getResources(),getResources().getIdentifier(iconName, "drawable", getPackageName()));
Bitmap resizedBitmap = Bitmap.createScaledBitmap(imageBitmap, width, height, false);
return resizedBitmap;
}
现在我想在MapView的片段中使用它,但是我得到错误“error:找不到符号方法getPackageName()""。可能是什么问题?
7条答案
按热度按时间e3bfsja21#
尝试使用此方法,而不是getPackageName()
watbbzwu2#
下面是获取片段中Kotlin的包名称
context!!.packageName
muk1a3rh3#
一个月
最简单的方法可能是:
注:
BuildConfig
。w3nuxt5m4#
已在Activity中定义。您不能在
Fragment
中直接使用它。请尝试用途:最佳做法是检查getActivity是否为null,这样您的应用就不会崩溃。阅读本文SO question
您也可以在主Activity中创建一个静态变量,示例化为包名,然后在片段中使用该变量。
现在,您可以使用以下命令访问它:
hts6caw35#
在
Fragment
onCreateView()中获取软件包管理器的另一种方法6yoyoihd6#
Kotlin延伸液
在代码中的某个位置添加以下代码:
然后直接在Fragment代码中使用packageName
rta7y2nd7#
试试这个: