1.从AndroidManifest.xml开始找启动的Activity
android:name=".main.LauncherActivity"
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
com.andbase.main目录下的LauncherActivity为启动的Activity
onCreate(){
//设置布局
//设置字体
启动界面初始化Logo页面
//init();初始化动画
//setListener();动画监听器
public void onAnimationEnd(Animation animation) {
Intent intent = new Intent();
intent.setClass(LauncherActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
}
动画结束后跳转到MainActivity,并结束当前的Activity
2.ManiActivity
ManiActivity继承自AbActivity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setAbContentView(R.layout.sliding_menu_content);
由三部分组成:
//1)mAbTitleBar标题栏
//2)正文 mMainContentFragment
mMainContentFragment = new MainContentFragment();
// 主视图的Fragment添加
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, mMainContentFragment).commit();
里面设置了一个WebView
String url = Constant.BASEURL+"m";
public static final String BASEURL = "http://www.amsoft.cn/";这个网址已经访问不到了,可以换成百度
public static final String BASEURL = "http://www.baidu.com";
//3)向右滑动的菜单 mMainMenuFragment
是一个ArrayList列表
}
3.MainContentFragment
主要是一个WebView加载网页
// 设置支持JavaScript脚本
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
// 设置可以访问文件
webSettings.setAllowFileAccess(true);
// 设置可以支持缩放
webSettings.setSupportZoom(true);
// 设置默认缩放方式尺寸是far
webSettings.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);
// 设置出现缩放工具
webSettings.setBuiltInZoomControls(false);
webSettings.setDefaultFontSize(20);
// 访问assets目录下的文件
String url = Constant.BASEURL;
mWebView.loadUrl(url); //加载网页
4.MainMenuFragment
mMainMenuFragment = new MainMenuFragment();
// SlidingMenu的配置
menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setShadowWidthRes(R.dimen.shadow_width);
menu.setShadowDrawable(R.drawable.shadow);
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
menu.setFadeDegree(0.35f);
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
我们关注的是:
AbMenuItem m3 = new AbMenuItem();
m3.setIconId(R.drawable.share);
m3.setText("程序案例");
mChild1.add(m3);
// 程序案例
Intent intent = new Intent(mActivity,DemoMainActivity.class);
startActivity(intent);
5.DemoMainActivity
程序案例包含了一个ListView
每一个item分别对应不同的Activity
后续时间主要研究各个Activity的使用
---------------------------------------------------------------------------
总结:
1.使用字体设置控件TextView(引入其它字体)
首先创建fonts文件夹New->Folder-->Assets Folder
在assets目录下在建立fonts文件夹New->Directory->fonts
把第三方字体放入fonts目录下
使用:
//根据路径得到Typeface
Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/jianxiqian.ttf");
tv.setTypeface(tf);
2.欢迎页面动画
动画有四大类:AlphaAnimation透明 ScaleAnimation缩放 TranslateAnimation移动 RotationAnimation旋转
1)定义动画xml
在res目录下新建文件夹anim
新建文件welcome_fade_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>
welcome_fade_in_scale.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<scale
android:fillAfter="false"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:interpolator="@android:anim/decelerate_interpolator"
android:pivotX="50.0%"
android:pivotY="50.0%"
android:toXScale="1.1"
android:toYScale="1.1" />
</set>
2)设置动画属性,如时长、起始和终止
private Animation mFadeIn;
private Animation mFadeInScale;
mFadeIn = AnimationUtils.loadAnimation(MainActivity.this,
R.anim.welcome_fade_in);
mFadeIn.setDuration(500);
mFadeIn.setFillAfter(true);
mFadeInScale = AnimationUtils.loadAnimation(MainActivity.this,
R.anim.welcome_fade_in_scale);
mFadeInScale.setDuration(800);
mFadeInScale.setFillAfter(true);
3)播放动画
launcherView.startAnimation(mFadeIn);
//动画监听器
mFadeIn.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
launcherView.startAnimation(mFadeInScale);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
mFadeInScale.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
launcherView.startAnimation(mFadeIn);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
3.引用andbase里面的函数
需要把andbase.jar放到工程目录的app/libs/目录下
增加依赖关系New-->Open Module Settings-->app-->dependencies-->jar Dependencies
添加libs/andbase.jar在build.gradle里会自动增加
implementation files('libs/andbase.jar')
然后新建的类就可以继承自andbase.jar里的AbActivity了
public class startActivity extends AbActivity{
setAbContentView(R.layout.activity_start);
}
4.selector选择器
当一个控件如button被按下和抬起时的不同背景
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@drawable/menu_f" /> 没按时的背景
<item android:state_pressed="true" android:drawable="@drawable/menu_n" /> 按下时的背景
</selector>