android image level的妙用

最近最一个feature,要把drawable中的图片资源存储到数据库,开始想存储drawable ID,可id是会变化的;后来想存储drawable的名称,这样不好取得resource。最后决定使用 image level来做,很简单,只要存一组int 数就可以了,在显示图片的时候只要编写一个xml文件,再配合数据库查出得image level就可以显示出相应的图片。数据库就不说了,把image level 的XML文件贴出来:


<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:maxLevel="0" android:drawable="@drawable/mobile_popcaticon_generic" />
    <item android:maxLevel="1" android:drawable="@drawable/mobile_popcaticon_bars_clubs" />
    <item android:maxLevel="2" android:drawable="@drawable/mobile_popcaticon_restaurants" />
    <item android:maxLevel="3" android:drawable="@drawable/mobile_popcaticon_gas_stations" />
    <item android:maxLevel="4" android:drawable="@drawable/mobile_popcaticon_fast_food" />
    <item android:maxLevel="5" android:drawable="@drawable/mobile_popcaticon_coffee" />
    <item android:maxLevel="6" android:drawable="@drawable/mobile_popcaticon_shopping" />
    <item android:maxLevel="7" android:drawable="@drawable/mobile_popcaticon_entertainment" />
    <item android:maxLevel="8" android:drawable="@drawable/mobile_popcaticon_home_imp" />
    <item android:maxLevel="9" android:drawable="@drawable/mobile_popcaticon_taxi" />
    <item android:maxLevel="10" android:drawable="@drawable/mobile_popcaticon_pizza" />
    <item android:maxLevel="11" android:drawable="@drawable/mobile_popcaticon_auto_parts" />
    <item android:maxLevel="12" android:drawable="@drawable/mobile_popcaticon_groceries" />
    <item android:maxLevel="13" android:drawable="@drawable/mobile_popcaticon_hospitals" />
    <item android:maxLevel="14" android:drawable="@drawable/mobile_popcaticon_italian_food" />
    <item android:maxLevel="15" android:drawable="@drawable/mobile_popcaticon_chinese_food" />
    <item android:maxLevel="16" android:drawable="@drawable/mobile_popcaticon_pharmacies" />
    <item android:maxLevel="17" android:drawable="@drawable/mobile_popcaticon_flowers" />
    <item android:maxLevel="18" android:drawable="@drawable/mobile_popcaticon_pet_supplies" />
    <item android:maxLevel="19" android:drawable="@drawable/mobile_popcaticon_deli" />
    <item android:maxLevel="20" android:drawable="@drawable/mobile_popcaticon_hotels" />
    <item android:maxLevel="21" android:drawable="@drawable/mobile_popcaticon_electronics" />
    <item android:maxLevel="22" android:drawable="@drawable/mobile_popcaticon_breakfast" />
    <item android:maxLevel="23" android:drawable="@drawable/mobile_popcaticon_auto_repair" />
    <item android:maxLevel="24" android:drawable="@drawable/mobile_popcaticon_mexican_food" />
    <item android:maxLevel="25" android:drawable="@drawable/mobile_popcaticon_delivery" />
    <item android:maxLevel="26" android:drawable="@drawable/mobile_popcaticon_banks" />
    <item android:maxLevel="27" android:drawable="@drawable/mobile_popcaticon_office_supplies" />
    <item android:maxLevel="28" android:drawable="@drawable/mobile_popcaticon_towing" />
    <item android:maxLevel="29" android:drawable="@drawable/mobile_popcaticon_beauty" />
</level-list>

2还要button的click, focus, press等显示不同状态也可以用XML完成:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_window_focused="false"
        android:drawable="@drawable/mobile_btn_off" />
    <item android:state_pressed="true"
        android:drawable="@drawable/mobile_btn" />
    <item android:state_focused="true"
        android:drawable="@drawable/mobile_btn" />
    <item
         android:drawable="@drawable/mobile_btn_off" />
</selector>


### 如何在 Android Studio 中配置 System Image #### 选择合适的 SDK 版本 为了确保能够顺利下载并配置所需的系统映像,在启动 Android Virtual Device (AVD) 管理器之前,建议先通过 SDK Manager 安装目标平台的 SDK 工具包。这一步骤可以减少后续可能出现的兼容性问题[^4]。 #### 打开 AVD 管理器 进入 Android Studio 的主界面后,点击顶部菜单栏中的 `Tools` -> `Device Manager` 或者直接按下快捷键组合 Ctrl+Shift+Alt+A 并输入 "Device Manager" 来快速打开它。接着会弹出一个新的窗口显示已有的模拟器列表以及创建新虚拟设备选项。 #### 创建新的虚拟设备 单击左侧边栏里的 `Create Virtual Device` 按钮来开始设置过程。这里可以选择预定义好的硬件配置文件(例如 Nexus、Pixel 系列),也可以自定义规格以满足特定需求。对于大多数开发者而言,默认提供的几种机型已经足够使用了[^3]。 #### 配置系统映像 一旦选择了具体的手机型号作为模板,下一步就是挑选合适的操作系统版本即所谓的“System Image”。此时应该注意查看界面上方是否有可用的目标 ABI 类型(如 armeabi-v7a, x86_64)。如果发现所需项为空白,则意味着当前环境中尚未安装对应架构的支持库;这时可以通过点击右侧的小箭头展开更多操作,并选取 `Download New System Image...` 进行在线获取最新发布的镜像资源[^2]。 #### 下载与应用所选映像 当找到匹配自己项目要求的 API Level 及其对应的 CPU 架构之后,只需简单地打勾标记该条目即可将其加入到待处理队列当中准备同步至本地磁盘缓存区。完成上述动作以后记得要回到上一页继续前进流程直至最终保存整个装置设定为止。 ```bash sdkmanager --install "system-images;android-33;google_apis;x86" ``` 这段命令展示了如何利用命令行工具 sdkmanager 来手动添加缺失的 system images 到工作环境内,适用于那些希望通过脚本自动化部署开发环境的朋友[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值