当前位置: 首页 > news >正文

项目案例 化妆品网站中国app排行榜

项目案例 化妆品网站,中国app排行榜,大理建设工程信息网站,国内响应式网站模板设想一下#xff0c;当我们正在开发一款应用。随着某个节日的临近#xff0c;我们可能希望通过更改应用图标来增强用户的节日氛围#xff0c;例如在图标上添“新年特惠”或者“龙年大吉”等标签。 这种小小的改变看似不经意#xff0c;却能够吸引用户的注意。 运行时更改应…设想一下当我们正在开发一款应用。随着某个节日的临近我们可能希望通过更改应用图标来增强用户的节日氛围例如在图标上添“新年特惠”或者“龙年大吉”等标签。 这种小小的改变看似不经意却能够吸引用户的注意。 运行时更改应用程序图标 首先应用程序图标是从清单文件设置的就像任何其他应用程序组件一样。 Android系统读取manifest文件并相应地设置应用程序图标。 目前无法直接使用相关的代码在运行时更改应用程序图标但有一个解决方案就是使用activity-alias。 步骤1准备图标资源️ 步骤2修改AndroidManifest.xml ?xml version1.0 encodingutf-8? manifest xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsapplicationandroid:allowBackuptrueandroid:dataExtractionRulesxml/data_extraction_rulesandroid:fullBackupContentxml/backup_rulesandroid:iconmipmap/ic_launcher1android:labelstring/app_nameandroid:roundIconmipmap/ic_launcher_roundandroid:supportsRtltrueandroid:themestyle/Theme.TestAndroidtools:targetApi31activityandroid:name.MainActivityandroid:exportedtrueandroid:themestyle/Theme.TestAndroidintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activityactivity-aliasandroid:name.MainActivityAliasandroid:enabledfalseandroid:exportedtrueandroid:iconmipmap/ic_launcher2android:targetActivity.MainActivityintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity-alias/application/manifest我们定义了一个activity 和一个activity-alias 并在activity-alias中设置了新的icon。默认情况下disable activity-alias也就是设置android:enabled“false”。 应用安装时启动的是MainActivity然后我们可以调用代码将主Activity设置成MainActivityAlias就可以实现运行时更改Android 应用程序图标的内容了。即disable MainActivityenable MainActivityAlias。 如何设置呢就要使用到PackageManager 这个类了。 步骤3编写更改图标的代码 (假设我们使用Compose) // 编写Activity的扩展方法 fun Activity.changeEnabledComponent(enabledPkgName: String,disabledPkgName: String, ) {packageManager.setComponentEnabledSetting(ComponentName(this, enabledPkgName),PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP)packageManager.setComponentEnabledSetting(ComponentName(this, disabledPkgName),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP) }Composable fun ChangeIconViews(activity: Activity, enabledPkgName: String, disabledPkgName: String) {Column(horizontalAlignment Alignment.CenterHorizontally) {val btnModifier Modifier.padding(vertical 2.5.dp)Button(modifier btnModifier, onClick {activity.changeEnabledComponent(enabledPkgName enabledPkgName,disabledPkgName disabledPkgName)}) {Text(text 切换成Test 1)}Button(modifier btnModifier, onClick {activity.changeEnabledComponent(enabledPkgName disabledPkgName,disabledPkgName enabledPkgName)}) {Text(text 切换成Test 2)}} }class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContent {TestAndroidTheme {Surface(modifier Modifier.fillMaxSize().padding(vertical 5.dp),color MaterialTheme.colorScheme.background) {Box(contentAlignment Alignment.Center) {ChangeIconViews(activity thisMainActivity,enabledPkgName com.example.testandroid.MainActivity,disabledPkgName com.example.testandroid.MainActivityAlias)}}}}} } 函数 changeEnabledComponent用于启用或禁用指定的组件使用 packageManager 对象的 setComponentEnabledSetting 方法来设置组件的启用状态。函数 ChangeIconViews 是一个Composable函数用于显示一个列Column布局并包含两个按钮。最后在MainActivity的 onCreate 方法中放置ChangeIconViews。 然后就能够实现在运行时更改Android应用程序图标这个需求了。 步骤4优化我们的代码 但是作为一名开发人员我们想要我们的代码更整洁更灵活的话我们就应该考虑优化我们的代码比如硬编码就不是很合适 ChangeIconViews(activity thisMainActivity,enabledPkgName com.example.testandroid.MainActivity,disabledPkgName com.example.testandroid.MainActivityAlias )假设我们使用最新版的Android Studio工具开发使用build.gradle.kts编写我们的编译脚本使用build.gradle的话其实也差不多就是语法不大一样就可以像下面这样 ... private val mainActivity com.example.testandroid.MainActivity private val mainActivityAlias com.example.testandroid.MainActivityAlias android {...defaultConfig {...buildConfigField(String, main_activity, \${mainActivity}\)buildConfigField(String, main_activity_alias, \${mainActivityAlias}\)}...buildFeatures {...// 使用自定义的buildConfig需要开启这个功能buildConfig true}... } 所以我们的MainActivity的onCreate就可以换成下面的代码 class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContent {TestAndroidTheme {Surface(modifier Modifier.fillMaxSize().padding(vertical 5.dp),color MaterialTheme.colorScheme.background) {Box(contentAlignment Alignment.Center) {ChangeIconViews(activity thisMainActivity,enabledPkgName BuildConfig.main_activity,disabledPkgName BuildConfig.main_activity_alias)}}}}} }除此之外我们发现AndroidManifest.xml中也有关于mainActivity和mainActivityAlias的硬编码比如下面的代码 activityandroid:name.MainActivity...... /activityactivity-aliasandroid:name.MainActivityAlias...android:targetActivity.MainActivity... /activity-alias所以我们做一下优化 ?xml version1.0 encodingutf-8? manifest xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsapplicationandroid:allowBackuptrueandroid:dataExtractionRulesxml/data_extraction_rulesandroid:fullBackupContentxml/backup_rulesandroid:iconmipmap/ic_launcher1android:labelstring/app_nameandroid:roundIconmipmap/ic_launcher_roundandroid:supportsRtltrueandroid:themestyle/Theme.TestAndroidtools:targetApi31activityandroid:name${main_activity}android:exportedtrueandroid:themestyle/Theme.TestAndroidintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activityactivity-aliasandroid:name${main_activity_alias}android:enabledfalseandroid:exportedtrueandroid:iconmipmap/ic_launcher2android:targetActivity${main_activity}intent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity-alias/application/manifestandroid {...defaultConfig {...manifestPlaceholders.apply {set(main_activity, mainActivity)set(main_activity_alias, mainActivityAlias)}buildConfigField(String, main_activity, \${mainActivity}\)buildConfigField(String, main_activity_alias, \${mainActivityAlias}\)}... }完整代码地址 感谢阅读Best Regards
http://www.pierceye.com/news/137684/

相关文章:

  • 网站设计和网页设计建网站必备软件
  • 中国建设银行上海市分行网站音乐网站开发可行性分析
  • 如何用天地图做网站做面包有哪些网站知乎
  • 买了域名之后怎么建设网站做网站一年赚一千万
  • 跟网站开发公司签合同主要要点个人网站logo需要备案吗
  • 免费询盘网站自我介绍ppt模板
  • 中国会议营销网站怎么做找优惠券的网站
  • 做网站的那些事wordpress改写
  • 仿造整个网站呼市网站建设公司
  • 网站被黑客入侵怎么办企业文化墙设计网站推荐
  • 建设网站的群婚礼婚庆网站建设需求分析
  • 全椒县城乡建设局网站网站怎么做营销策划
  • 响应式网站制作流程河北企业建网站
  • 常州新北区有做淘宝网站策划的吗什么建设网站
  • 成品网站源码68w68游戏wordpress php推送示例
  • 博优云软件官方网站wordpress 个人
  • 登封 网站建设烟台网站关键词推广
  • 深圳实惠的专业建站公司淘宝券商城网站制作
  • 珠海手机网站建设成都设计网站
  • 网站mp3播放器代码国家企业信息系统官方
  • 江西建设银行招聘网站pc网站还有必要做吗
  • 网站建设几个要素做网站需要学会什么软件
  • 做视频网站什么平台好站酷设计网站首页
  • 班级网站设计论文网站多国语言
  • 网站制作评价标准网站服务器怎么收费
  • 怎么建立自己的网站平台多少钱wordpress自建菜单
  • 深圳购物网站如何制作外贸网站 wordpress
  • 商品展示网站模板中国建设电工立网站
  • 网站推广的基本方法对于大部分网站来说都是适用的河北网站开发费用
  • 高安网站建设公司外链代发免费