使用setImageDrawable绘制动态图标

时间:2013-11-28 08:23:16

标签: android

Android SDK Api Demo中有一段代码

i.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));
i.setScaleType(ImageView.ScaleType.FIT_CENTER);
final int w = (int) (64 * getResources().getDisplayMetrics().density + 2f);
i.setLayoutParams(new GridView.LayoutParams(w, w));

有人可以解释这段代码吗? havnt在网上发现了什么。

google doc提到“setImageDrawable”用于在屏幕上绘制内容 还有“GetPackageManager”用于返回PackageManager实例以查找全局包信息。 现在的问题是我无法找到项目文件夹中的图标列表,再加上它,如何更改它显示我的图标而添加事件以便点击它们。

2 个答案:

答案 0 :(得分:2)

代码你有postet,第一行,你加载图标并设置它。

第二个用于将图像的边界缩放到此视图的边界,FIT_CENTER将其缩放到屏幕的中心。

第三个,你计算宽度,在第四个你设置它到imageview(设置大小)。

你可以在sdk文件夹中找到的图标。 (\路径到您的-Android的SDK夹\平台\机器人-XX \数据\ RES)

加载你自己的图标使用:

setImageDrawable(getResources().getDrawable(R.drawable.icon));

和听众:

    imageView.setOnClickListener(clickListener);
OnClickListener clickListener = new OnClickListener() {
    public void onClick(View v) {
               if (v.equals(imageView)) {
                  // you'r code here
               }
           }
};

答案 1 :(得分:0)

截至 2021 年 6 月,Manu Zi 的答案现已弃用。为了实现相同的目标,您必须使用 ContextCompat,如下所示。

在片段中,使用以下内容:

setImageDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.icon))

如果您的代码在活动中,请使用以下代码:

setImageDrawable(ContextCompat.getDrawable(this, R.drawable.icon))

快乐编码!!!