activity

Android Style和自定义属性

佐手、 提交于 2019-12-05 12:39:35
文章目录 1. Android Style & Theme 1.1 基本概念 1.1.1 Style(样式) 1.1.2 Theme(主题) 1.2 创建和应用style 1.3 扩展和自定义style 1.4 创建和应用theme 1.5 扩展和自定义theme 1.6 添加指定版本的style 1.7 Style层级 1.7.1 TextAppearance 2 Android 自定义属性 2.1 创建自定义属性步骤 2.2 AttributeSet 2.3 TypedArray 2.4 declare-styleable 2.5 obtainStyledAttributes 2.5.1 obtainAttributes(AttributeSet set, int[] attrs) 2.5.2 obtainStyledAttributes(int[] attrs) 2.5.3 obtainStyledAttributes(int resId,int[] attrs) 2.5.4 obtainStyledAttributes(AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) 3 几种赋值属性方法 3.1 将单个属性直接应用于view 3.2 将一个style应用于view 3.3

7.Fragment

て烟熏妆下的殇ゞ 提交于 2019-12-05 12:33:32
概念 直译 碎片、片段 目的 解决不同屏幕分辩率的动态和灵活UI设计。 场景 fragments 在活动Activity中为不同的屏幕尺寸修改布局配置(小屏幕可能每次显示一个片段,而大屏幕则可以显示两个或更多) *********如微信主界面切换,使用四个fragment进行切换,开销更小,更流畅,主界面一个activity即可搞定********* 要求 Fragment必须被写成可重用的模块。 fragment有自己的layout,自己进行事件响应,拥有自己的生命周期和行为,所以你可以在多个activity中包含同一个Fragment的不同实例。 优点 Fragment可以使你能够将activity分离成多个可重用的组件,每个都有它自己的生命周期和UI。 Fragment可以轻松得创建动态灵活的UI设计,可以适应于不同的屏幕尺寸。从手机到平板电脑。 Fragment是一个独立的模块,紧紧地与activity绑定在一起。可以运行中动态地移除、加入、交换等。 Fragment提供一个新的方式让你在不同的安卓设备上统一你的UI。 Fragment 解决Activity间的切换不流畅,轻量切换。 Fragment 替代TabActivity做导航,性能更好。 Fragment 在4.2.版本中新增嵌套fragment使用方法,能够生成更好的界面效果。

Android杂谈--Activity、Window、View的关系

*爱你&永不变心* 提交于 2019-12-05 05:33:41
一、首先说说View和ViewGroup吧    Android 系统中的所有UI类都是建立在View和ViewGroup这两个类的基础上的。所有View的子类成为”Widget”,所有ViewGroup的子类成为”Layout”。View和ViewGroup之间采用了组合设计模式,可以使得“部分-整体”同等对待。ViewGroup作为布局容器类的最上层,布局容器里面又可以有View和ViewGroup。 二、LayoutInflater,LayoutInflater.inflate()这两个是什么意思? LayoutInflater是一个用来实例化XML布局文件为View对象的类 LayoutInflater.infalte(R.layout.test,null)用来从指定的XML资源中填充一个新的View 三、Activity、Window、View之间的关系 而当我们运行程序的时候,有一个setContentView()方法,Activity其实不是显示视图(直观上感觉是它),实际上Activity调用了PhoneWindow的setContentView()方法,然后加载视图,将视图放到这个Window上,而Activity其实构造的时候初始化的是Window(PhoneWindow),Activity其实是个控制单元,即可视的人机交互界面。 打个比喻:

android 弹出软键盘属性windowSoftInputMode

99封情书 提交于 2019-12-05 05:30:28
一、简介 软件盘设置,会以下面两种方式影响屏幕的显示 1、设置为“可见”或者“不可见” stateUnchanged、 stateHidden、 stateAlwaysHidden、 stateVisible、 stateAlwaysVisible 2、软键盘的展示方式会影响主界面的布局,例如可以是屏幕原有布局改变尺寸,留给软键盘足够的空间。 也可能是,原有布局不变,软键盘覆盖在布局上面。 adjustUnspecified、 adjustResize、 adjustPan、 adjustNothing 设置时,可以设置单一一个属性,或者一个state...加上一个adjust... 二、共有以下十种属性 下面分别介绍以下每种属性的表现 1、stateUnspecified The state of the soft keyboard (whether it is hidden or visible) is not specified. The system will choose an appropriate state or rely on the setting in the theme. This is the default setting for the behavior of the soft keyboard. 这种属性表示,软键盘显示或者不显示没有设定

如何创建启动界面Splash Screen

杀马特。学长 韩版系。学妹 提交于 2019-12-05 04:47:10
如何创建启动界面Splash Screen 启动界面Splash Screen在应用程序是很常用的,往往在启动界面中显示产品Logo、公司Logo或者开发者信息,如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥的时间。 Android 应用程序创建一个启动界面Splash Screen非常简单。比如创建一个工程MySample,主Acitity就叫MySample,创建另一个Activity叫 SplashScreen,用于显示启动界面,资源文件为splash.xml。 SplashScreen的代码如下: package com.ctoof.android; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.MotionEvent; public class SplashScreen extends Activity { protected boolean _active = true; protected int _splashTime = 5000; @Override public void onCreate(Bundle savedInstanceState) { super

Android:Apk插件出现Permission Denial: starting Intent错

亡梦爱人 提交于 2019-12-05 04:45:42
Android跳转插件时出现Permission Denial错误主要错误是:在入口Activity中没有添加<action android:name="android.intent.action.MAIN" />。 <activity android:name="Activity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> </intent-filter> </activity> 一个应用程序可以有多个Activity,每个Activity是同级别的,那么在启动程序时,最先启动哪个Activity呢?有些程序可能需要显示在程序列表里,有些不需要。怎么定义呢?android.intent.action.MAIN决定应用程序最先启动的Activity ,android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里。 Main和LAUNCHER同时设定才有意义, 如果有多个同级的Activity都有过滤器 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER"

Unity 3D:在现有的Android游戏场景中显示AdMob的横幅

让人想犯罪 __ 提交于 2019-12-05 03:12:44
关于如何在现有的Android项目现场显示AdMob的横幅,在一个Android项目中使用一个简单的Android JAR文件似乎不是一个简单的事情。我终于设法让AdMob在现有工作统一安卓游戏。对于本例,我使用统一为Windows版本3.5.2和最新的Eclipse为Android插件。 先决条件 我假设您有一个工作在你的电脑上安装Android的Eclipse插件。如果没有,请按照本教程准备工作区: https://github.com/unity-plugins/Unity-Admob。 Eclipse / Android的部分 • 如果你还没有这样做,下载AdMob JAR文件并注册一个账户。 • 创建一个新的Android项目,确保命名空间(包名称)是相同的。你可以通过构建统一设置命名空间,设置>播放器设置>Android选项卡>其它设置>“束标识符”。在我的示例中,我使用my.android.game。 • 复制AdMob JAR文件/libs到项目大文件夹。 • 在你的安装目录文件下搜索classes.jar文件,并复制到libsfolder Eclipse项目文件。 • 为了测试现实的广告,我们首先创建一个名为AdMobActivity.javaa的常规Android类。如下所示: <!-- base permission --> <uses-permission

android 动态显示和隐藏状态栏

淺唱寂寞╮ 提交于 2019-12-05 02:35:06
View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前可见性。 setSystemUiVisibility(int visibility)方法可传入的实参为: 1. View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,Activity不全屏显示(恢复到有状态的正常情况)。 2. View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示。 3. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。 4. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住。 5. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 6. View.SYSTEM_UI_LAYOUT_FLAGS:效果同View. SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 7. View.SYSTEM_UI_FLAG_HIDE

Android Activity设置全屏

那年仲夏 提交于 2019-12-05 02:34:54
Activity设置全屏显示(隐藏标题栏和状态栏): 方法一: 在Activity oncreate()方法中 //隐去电池等图标和一切修饰部分(状态栏部分) this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);// 隐去标题栏 this.requestWindowFeature(Window.FEATURE_NO_TITLE); 方法二: 在AndroidManifest.xml 中设置隐去标题栏, 隐去状态栏 android:theme=" @android :style/Theme.NoTitleBar.Fullscreen" 以上方法适用于android4.0以下版本,在android4.0以上版本是底部有虚拟按键栏,这是需要使用如下方法 if(android.os.Build.VERSION.SDK_INT>=14){ getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); getWindow().getDecorView().setSystemUiVisibility(View

安卓学习-百度地图

浪尽此生 提交于 2019-12-05 02:21:17
Android Studio工程配置方法 第一步:在工程app/libs目录下放入baidumapapi_vX_X_X.jar包,在src/main/目录下新建jniLibs目录,工程会自动加载src目录下的so动态库,放入libBaiduMapSDK_vX_X_X_X.so如下图所示,注意jar和so的前3位版本号必须一致,并且保证使用一次下载的文件夹中的两个文件,不能不同功能组件的jar或so交叉使用。 so的配置也可以参考demo给出的目录结构,如下图所示,在app工程路径下,新建libs,并在libs目录下放入对应不同CPU架构的so文件。这样工程并不会自动加载libs下的so,需在gradle编译时,通过加入代码: jniLibs.srcDir 'libs' 来说明so的路径为该libs路径。 第二步:工程配置还需要把jar包集成到自己的工程中,如图上图所示,放入libs目录下。对于每个jar文件,右键-选择Add As Library,导入到工程中。对应在build.gradle生成工程所依赖的jar文件说明,如图所示: jar的配置也可参考eclipse方法,进行以下操作: 菜单栏选择 File —>Project Structure。 在弹出的Project Structure 对话框中, 选择module, 然后点击 Dependencies 选项卡.