AndBaseDemo源码学习

来源:互联网 发布:怎么在淘宝搜同款 编辑:程序博客网 时间:2024/06/04 22:43

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>


原创粉丝点击