㈠ android 启动页闪黑屏怎么解决比较好
闪黑屏的原因主要是我们启动Activity的时候,需要跑完onCreate和onResume才会显示界面 前几天Boss就反应说,机器每次启动程序都会闪一下黑屏,这个客户不接受。没办法,只能想想怎么解决,最后找到了下面的方法。闪黑屏的原因主要是 我们启动Activity的时候,需要跑完onCreate和onResume才会显示界面。也就是说需要处理一些数据后,才会显示。按照这种思路,是不 是我把初始化的工作尽量减少就可以避免黑屏?事实是,就算你onCreate啥都不做,仍然会闪一下黑屏,因为初始化解析界面时需要一定时间。下面是解决 办法: 1、自定义Theme 复制代码 代码如下: 设置背景图Theme <style name="Theme.AppStartLoad" parent="android:Theme"> <item name="android:windowBackground">@drawable/ipod_bg</item> <item name="android:windowNoTitle">true</item> </style> //2、设置透明Theme <style name="Theme.AppStartLoadTranslucent" parent="android:Theme"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> </style> 上面我定义了两种Theme,第一种Theme就是设置一张背景图。当程序启动时,首先显示这张背景图,避免出现黑屏。第二种Theme是把样式设置为透明,程序启动后不会黑屏而是整个透明了,等到界面初始化完才一次性显示出来。下面说说两种方式的优缺点: •Theme1 程序启动快,界面先显示背景图,然后再刷新其他界面控件。给人刷新不同步感觉。 •Theme2 给人程序启动慢感觉,界面一次性刷出来,刷新同步。 2、修改AndroidManifest.xml 为了使上面Theme生效,我们需要设置一些Activity的Theme 复制代码 代码如下: <application android:allowBackup="true" android:icon="@drawable/ipod_icon" android:label="@string/app_name" android:launchMode="singleTask"> <!-- iPod主界面 --> <activity android:name="com.apical.apicalipod.IPodMainActivity" <!-- 使用上面定义的样式 mythou--> android:theme="@style/Theme.AppStartLoad" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> //...... </application> •可以在Activity里面增加上面自定义的样式。另外在Application里面增加也是可以的,而且是全局效果。 •自定义Theme放在 /res/values/styles.xml 里面。如果没有这个文件,自己添加一个即可。 •如果存在多个Activity切换,中间也可能会存在短暂黑屏问题。原因也是Activity启动的时候需要初始化加载数据,如果想避免这种情况,可以在你切换的Activity里面增加上面的样式。 •上面两种样式都可以避免黑屏。可以实际测试一下你的程序选择一种效果。 •这个只是把黑屏避免了,但是如果你程序初始化启动慢,还是会给人程序启动慢的感觉。需要自行优化程序初始化过程。 3、Theme属性详解 复制代码 代码如下: android:theme="@android:style/Theme.Dialog" //Activity显示为对话框模式 android:theme="@android:style/Theme.NoTitleBar" //不显示应用程序标题栏 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" //不显示应用程序标题栏,并全屏 android:theme="Theme.Light " //背景为白色 android:theme="Theme.Light.NoTitleBar" //白色背景并无标题栏 android:theme="Theme.Light.NoTitleBar.Fullscreen" //白色背景,无标题栏,全屏 android:theme="Theme.Black" //背景黑色 android:theme="Theme.Black.NoTitleBar" //黑色背景并无标题栏 android:theme="Theme.Black.NoTitleBar.Fullscreen" //黑色背景,无标题栏,全屏 android:theme="Theme.Wallpaper" //用系统桌面为应用程序背景 android:theme="Theme.Wallpaper.NoTitleBar" //用系统桌面为应用程序背景,且无标题栏 android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen" //用系统桌面为应用程序背景,无标题栏,全屏 android:theme="Theme.Translucent" //透明背景 android:theme="Theme.Translucent.NoTitleBar" //透明背景并无标题 android:theme="Theme.Translucent.NoTitleBar.Fullscreen" //透明背景并无标题,全屏 android:theme="Theme.Panel " //面板风格显示 android:theme="Theme.Light.Panel" //平板风格显示 4、Theme和Style Android里面除了Theme外还有Style,例如下面是Launcher里面配置workspace的一个Style 复制代码 代码如下: <style name="WorkspaceIcon"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">match_parent</item> <item name="android:layout_gravity">center</item> <item name="android:gravity">center_horizontal</item> <item name="android:singleLine">true</item> <item name="android:ellipsize">marquee</item> <item name="android:textSize">12sp</item> <item name="android:textColor">#FFF</item> <item name="android:shadowRadius">2.0</item> <item name="android:shadowColor">#B0000000</item> </style> Style可以理解为一组属性集合,方便不同的View设置使用,我们在View里面使用Style的时候,跟使用Theme是一样的应用方法。那么Style和Theme有什么区别? 下面列出两者区别: •样式用在单独的View,如:Button、TextView等 •主题通过AndroidManifest.xml中的<application>和<activity>用在整个应用或者某个 Activity,主题对整个应用或某个Activity存在全局性影响。 •如果一个应用使用了主题,同时应用下的view也使用了样式,那么当主题与样式属性发生冲突时,样式的优先级高于主题。 上面就是通过Theme解决程序启动闪黑屏问题,并且讲解了Theme和Style,通过Theme配置,其实还可以做个欢迎页面。不过我们都希望程序启动速度越快越好,因此还是需要多多优化自己的程序。
㈡ 如何找到Android app启动activity和页面元素信息
简单的方法,用AlarmManager设个Delay时间 delay后启动Activity, 比如 Intent intent = new Intent (????); int delaySecs = ???; alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + delaySecs * 1000, PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_ONE_SHOT)); 2. 也可以设置Timer,timeout 后启动activity
㈢ Android和IOS开发图标、启动页尺寸
最近项目在做android和ios的项目,设计师让我给出图标的尺寸,于是查了一下尺寸。
第一步:产品经理和UI设计师制定好UI规范,然后开始做图标做颜色做尺寸等一系列和APP界面强相关的工作,以最常见的“back”按钮为例,UI设计师从无到有的具体实现步骤:
①在coreldraw或者Sketch中制作好“矢量图标“—返回,此时的长宽单位是毫米;
②保存输出为“PNG位图图片”—返回,此时的长宽单位是px(像素);
③指定好此图标的内外边距,此时的边距单位是px(像素);
④最终此图标图片交到开发者手中,做好图片的放置和内外边距的实现。开发这在这个过程中会遇到一个问题:内外边距是由px为单位的距离,但是在实际开发中“dp”做为单位的更加常见,所以就会涉及到“px”“dp”互转的封装类,专门用来实现这个过程,同时还要注意不同分辨率屏幕的适配。
(1)px,平常我们所说的手机的分辨率是1920×1080,这就是像素数量,也就是1920px×1080px,代表手机高度上有1920个像素点,宽度上有1080个像素点,每个像素点的单位是px。
(2)dp,dp是为了开发者便于做不同屏幕的适配而引入的开发单位,具体来说就是为了使得开发者设置的长度能够根据不同屏幕(分辨率/尺寸也就是dpi)获得不同的像素(px)数量。比如:我将一个控件设置长度为1dp,那么在160dpi上该控件长度为1px,在240dpi的屏幕上该控件的长度为1 240/160=1.5个px。也就是dp会随着不同屏幕而改变控件长度的像素数量。
(3)DPI,用户实际判别手机屏幕的显示好坏,除了分辨率还要考虑屏幕的宽高(英寸),也就是用dpi,即每英寸多少像素来评价屏幕的显示效果。(不然假如手机分辨率是1920×1080,但是屏幕是几十寸的,那显示效果将不会很好,甚至你有可能看到小的像素块,那将更影响视觉效果。)
三、Android开发中图标尺寸总结(务必掌握):
(1)dpi、分辨率与图标尺寸的关系L DPI ( 120 DPI )—分辨率240 320px,其启动图标大小为 36 x 36 pxM DPI (160 DPI )—分辨率320 480px,其启动图标大小为 48 x 48 pxH DPI ( 240 DPI )—分辨率480 800px,其启动图标大小为 72 x 72 pxXH DPI ( 320 DPI )—分辨率1280 720px,其启动图标大小为 96 x 96 pxXXH DPI( 480 DPI )—分辨率1920 1080px,其启动图标大小为144 x 144 pxXXXH DPI( 640 DPI )—分辨率3840*2160px,其启动图标大小为192 x 192 px
(2)开发中“px”到“dp”从 px 换算成 dp 要知道它是以什么 dpi 标准来设计的,换句话说,就是要根据不用分辨率的屏幕,根据换算关系表得到相应的 dp 。 例如: 以 xxhdpi 标准设计的 UI,其中一个切图的分辨率是 600 px * 360 px ,根据换算关系表可知,在 xxhdpi 标准下,1 dp = 3 px ,则其对应的 dp 是 200 dp * 120 dp 。换算关系表如下:(两次标红 请重点关注)
36 x 36 48 x 48 64 x 64 72 x 72 96 x 96 144 x 144 192 x 192
具体的图标尺寸可以打开xcode ,在项目目录下找到Assets.xcassets文件,这个文件里面标识出了所需要的图标尺寸,下面标识的是基本尺寸,2x就是底部尺寸x2 ,即下面的尺寸为80pt和120pt
看了一下新的苹果开发文档和Xcode给的AppIcon坑,发现又新增了一些尺寸的图标。在这里整理一下最新的最全的icon尺寸。
itunes中使用的icon
1024 * 1024
iPhone: iOS7-10桌面图标
60 * 60
120 * 120 @2x
180 * 180 @3x
iPhone: iOS5-6桌面App图标
57 * 57
114 * 114 @2x
iPad: iOS7-10桌面图标
76 * 76
152 * 152 @2x
iPad: iOS5-6桌面图标
72 * 72
144 * 144 @2x
iPhone: iOS5-6的搜索 iOS5-10的设置
iPad: iOS5-10的设置
29 * 29
58 * 58 @2x
87 * 87 @3x
iPad: iOS5-6系统搜索图标
50 * 50
100 * 100 @2x
iPhone、iPad: iOS7-10系统搜索图标
40 * 40
80 * 80 @2x
120 * 120 @3x
iPhone、iPad: iOS7-10通知栏图标
20 * 20
40 * 40 @2x
80 * 80 @3x
iPad Pro: App桌面图标
167 * 167 @2x
iPhone汇总:
1024 * 1024
120 * 120
180 * 180
20 * 20
40 * 40
80 * 80
29 * 29
58 * 58
87 * 87
57 * 57 (iOS5-6)
114 * 114 (iOS5-6)
iPad汇总:
1024 * 1024
76 * 76
152 * 152
20 * 20
40 * 40
80 * 80
120 * 120
29 * 29
58 * 58
72 * 72 (iOS5-6)
144 * 144 (iOS5-6)
50 * 50 (iOS5-6)
100 * 100 (iOS5-6)
167 * 167 (iPad Pro)
APP启动页,即LaunchImages,需要五张不同尺寸大小的图,切记一定要选择png格式,否则打包时报错,导致APP适配失败。
五张图的大小即:320 480、640 960、640 1136、750 1334、1242 2208 828 1792 1125 2436 1242 2688
分别对应的iphone屏幕尺寸:iphone 3GS、iphone4(s)、iphone5(c、s)、iphone6(s)、iphone 6(s) plus 、iphoneX(S)、iphoneXR、iphoneXs Max.
具体步骤:
第一步:
1.点击工程目录中的Images.xcassets,点击左侧边栏的LaunchImages(如果没有,在空白处右击创建一个)
2.然后在xcode最右侧的边栏处选择你的APP是否要对ipad、横竖屏、以及低版本的iOS系统做支持。
第二步:
将填好的图片配置到工程中的启动页选项中
点击项目目录的工程 -> target -> General -> App Icons And Launch Images
将Launch Images Source的选项设置为LaunchImages,切记当APP不是用LaunchScreen.xib来配置启动页时,LaunchScreen File的选择状态一定为空!否则编译无法通过
如果此时还没有显示的话,那么你先删除app,然后再运行一下项目看看
参考网站:
https://blog.csdn.net/weixin_41101173/article/details/79644613
https://blog.csdn.net/it_male/article/details/80434269
㈣ android开发 一开始打开的类似于欢迎页面叫什么
这个界面主要的作用有:
这个界面是为了让app有更好的体验,不会让用户感觉太突兀了,所以现在app市场包括ios的应用基本都是有欢迎界面的。
这个界面一般称为启动页面,在android开发中,开发者可以设定在该界面的停留时间,从而可以在后台进行一些初始化的工作的。
㈤ android app 每次打开都会到启动页怎么回事
程序内部设置的,启动页是用来初始化一些数据的。
㈥ android每次打开APP显示启动页
如果你Manifests.xml中的默认启动页设置的是SplashActivity那么你退出APP,下次进入依然会进入此页面的。
㈦ Android P 启动页适配适配刘海屏
需求: app 启动页全屏,延伸到刘海屏的状态栏和底部的导航栏,操作步骤如下:
注意 compileSdkVersion、buildToolsVersion、targetSdkVersion 都是 30
注意: SplashActivity 不需要 setContentView( )
splash_logo_bg.xml 的预览效果如下:
可见启动页完全全屏了
源码: https://github.com/dazeGitHub/CutOutGoodDemo
㈧ Android手机app启动的时候第一个Activity必须是MainActivity吗
不是必须MainActivity,可以是任何Activity.
看AndroidManifest.xml中
红框中代码决定谁是启动Activity.
//决定应用程序最先启动的Activity
//当有多个启动设置时候,程序会优先调用最前面的activity作为启动Activity.
<action android:name="android.intent.action.MAIN" />
//决定应用程序是否显示在程序列表里
<category android:name="android.intent.category.LAUNCHER" />
㈨ android手机app应用启动界面如何查找
可以先反编译apk安装包,找到里面的启动界面图,然后换成自己喜欢的图片!注意图片的大小和名称要与之前的一样!修改好了再回编译成apk文件,再签名。ok,装到手机上就可以了!具体要用到的工具和方法网上都有!希望采纳!
㈩ android app启动动画是怎样制作的
Android的开机动画,开始页面并非MainActivity,而是在另外一个页面(就是开机的那幅图[xml里面写])停留2秒(时间自定 ),然后再跳转到MainActivity页面即可.
1
2
3
4
5
6
7
8
9
10
11
12
13
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.acty_appstart);
new Handler().postDelayed(new Runnable() {
@Override public void run() {
if (!AppStart.this.isFinishing()) {
Intent intent = new Intent(this,MainActivity.class);//2秒之后跳转到主界面执行
startActivity(intent);
AppStart.this.finish();
}
}
}, 2000);
}