AndBaseDemo源码学习


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>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.andbase中包含了大量的开发常用手段。 如网络下载,多线程与线程池的管理,数据库ORM,图片缓存管理,图片文件下载上传,Http请求工具,SOAP工具类,异步Task,常用工具类(字符串,日期,文件处理,图片处理工具类等),能够使您的应用在团队开发中减少冗余代码,很大的提高了代码的维护性与开发高效性,能很好的规避由于开发疏忽而导致常犯的错误。 2.andbase封装了大量的常用控件。 如list分页,grid分页,下拉刷新,进度框,图片轮播,表格,多线程下载器,侧边栏,图片上传,轮子选择,图表,Tab滑动,日历选择器等。 3.强大的AbActivity,您没有理由不继承它。 继承它你能够获得一个简单强大可设置的操作栏,以及一系列的简单调用,如弹出框,提示框,进度框,副操作栏等。 4.提供效率较高图片缓存管理策略,使内存大幅度节省,利用率提高,效率提高。 程序中要管理大量的图片资源,andbase提供简单的方法,几步完成下载与显示,并支持缩放,裁剪,缓存功能,OOM不在有。 5.封装了大量常见工具类。 包括日期,字符,文件,图片,数学,View万能适配工具类等各种处理函数, 多而全。 6.用andbase大量减少handler的使用,而采用回调函数,代码更整洁。 handler会产生大量代码,并且不好维护,andbase对handler进行了封装,你会发现用了andbase基本代码中不会再有大量的handler判断语句。 7.简单轻量支持注解自动建表的ORM框架(支持一/多对多的关联操作)。 写sql,建表,工作量大,andbase提供更傻瓜异步增删改查工具类,数据库在内置卡和外置卡都可以。 8.异步请求http框架,网络请求标准化,支持文件上传下载,get,post,进度显示。 包含了异步与http请求的工具类,SOAP请求工具类,简单实用。 9.热情的支持群体。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值