我已经在this链接中成功实现了android中的表情符号。问题是当应用程序在更高密度的设备上运行时,所选的表情符号显得太小。我试过在显示之前更改drawable的尺寸如下
ImageGetter imageGetter = new ImageGetter() {
public Drawable getDrawable(String source) {
StringTokenizer st = new StringTokenizer(index, ".");
Drawable d = new BitmapDrawable(getResources(),
emoticons[Integer.parseInt(st.nextToken()) - 1]);
Log.i("tag", "" + Integer.parseInt(st.nextToken()));
Drawable drawable = getResources().getDrawable(
getResources().getIdentifier(
"e" + (Integer.parseInt(st.nextToken()) - 1),
"drawable", getPackageName()));
// d.setBounds(0, 0, d.getIntrinsicWidth(),
// d.getIntrinsicHeight());
d.setBounds(0, 0, 40, 40);
return d;
}
};
但这没有用。 .png图像位于资源文件夹中。有没有办法在资源文件夹中显示不同密度的图像?像drawable-ldp,drawable-mdp ......?
答案 0 :(得分:0)
尝试以下方法:
DisplayMetrics metrics = getResources().getDisplayMetrics();
int densityDpi = (int)(metrics.density * 160f);
d.setBounds(0, 0, 10*densityDpi, 10*densityDpi);
现在,在调整对象大小时,您的代码将考虑屏幕的密度。这有助于在不同设备之间保持一致的尺寸。