安卓课程心得

目录

前言

一、 Android Studio简介

二、android studio的AndroidManifest.xml

三、近期学习成果(简单的相册)

1.ViewPager2简单介绍

2.ViewPager2使用方法

四、我常用的Android Studio 快捷键:


前言

这个学期我学习了Android应用开发课程,并对android studio有了一定的了解。

一、 Android Studio简介

        Android Studio是Google推出基于IntelliJ IDEA的Android应用开发集成开发环境(IDE),而且提供了更多提高Android应用的构建效率的功能;

  1. 基于Gradle的灵活构建系统
  2. Instant Run可以将变更推送到正在运行的应用中,无需重新构建Apk;
  3. 快速和功能丰富的模拟器;
  4. 丰富的测试工具、性能工具(CPU Profile和Memory Profile)和网络监控工具(Network Profiler);
  5. C++和NDK支持,以及LLDB可以调试原生代码;
  6. 使用Room将数据持久化数据库(SQLite)
  7. 使用apkanalyzer对预构建APK进行分析和调试
  8. 强大的布局编辑器
  9. 支持Koltin编码和Lua编码(通过NDK开发)

二、android studio的AndroidManifest.xml

AndroidManifest.xml文件是整个应用的主配置清单文件。主要的包括的是该应用的包名、组件、权限等等信息。

<activity
            android:name=".LoginActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>

android.intent.action.MAIN表示该页面是App的入口页面,

所以,运行这个项目后,会首先打开LoginActivity页面。

如果想其他页面作为主页面就将android:name=“”更改即可。

其他要用的页面将写成下面这种格式:

  <activity
            android:name=".PyquanActivity"
            android:exported="false" />
  <activity
            android:name=".HomeActivity"
            android:exported="false" />
  <activity
            android:name=".RegisterActivity"
            android:exported="false" />
  <activity
            android:name=".PersonInfoActivity"
            android:exported="false" />

三、近期学习成果(简单的相册)

功能:可以切换滑动相册,也可以用下面的按钮切换图片,点赞后点赞按钮会发生改变。

点赞前:

点赞后:

这个里面主要使用ViewPager2和Fragment布局,还包括评论按钮组RadioGroup、输入框、点赞、查看评论。

我对其中的一项功能进行简单介绍讲解:

1.ViewPager2简单介绍

ViewPager2是Android Jetpack库中的一个组件,是用于在应用程序中实现页面切换和滑动效果的容器。是基于RecyclerView实现的,自然继承了RecyclerView的众多优点,并且针对ViewPager存在的问题做了优化。

  • 支持垂直方向的滑动且实现极其简单。
  • 完全支持RecyclerView的相关配置功能。
  • 支持多个PageTransformer。
  • 支持DiffUtil,局部数据刷新和Item动画。
  • 支持模拟用户滑动与禁止用户操作。

ViewPager2更多的是配合Fragment的使用,这需要借助FragmentStateAdapter。

2.ViewPager2使用方法

1.先新建一个Activity页面,然后在其布局文件中加入:

  <androidx.viewpager2.widget.ViewPager2
            android:id="@+id/vp2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1" />

2.创建4个Fragment和布局

在这其中加入照片

 3.创建一个适配器类,命名为MyFragmentPageAdapter,不创建布局文件

public class MyFragmentPageAdapter extends FragmentStateAdapter {

    private List<Fragment> fg;

//    初始化列表
    public MyFragmentPageAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle, List<Fragment> fragmentList){
        super(fragmentManager, lifecycle);
        this.fg=fragmentList;
    }

//    实现FragmentStateAdapter重载方法
    @NonNull
    @Override
    public Fragment createFragment(int position) {
        return fg.get(position);
    }

    @Override
    public int getItemCount() {
        return fg == null ? 0 : fg.size();
    }
}

4.主函数

public class Viewpager2Activity extends AppCompatActivity implements View.OnClickListener, RadioGroup.OnCheckedChangeListener {
    private ViewPager2 mViewPager2;
    private ArrayList<Fragment> mFragment;
    private MyFragmentPageAdapter mMyFragmentPageAdapter;
    private ImageView zan,ckpl;
    private boolean zanflag=false;
    private ArrayList<Integer> mRadioButton;

    private RadioGroup mRadioGroup;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_viewpager2);

        initView();
        initData();
        initAdapter();
    }

    private void  initAdapter(){
        //初始化碎片适配器,注意自定义mMyFragmentPageAdapter类,及其构造函数带了3个参数
        mMyFragmentPageAdapter = new MyFragmentPageAdapter(getSupportFragmentManager(),getLifecycle(),mFragment);
        mViewPager2.setAdapter(mMyFragmentPageAdapter);
    }
    private void initData(){
        mFragment =new ArrayList<>();
        mFragment.add(new Fragment1());
        mFragment.add(new Fragment2());
        mFragment.add(new Fragment3());
        mFragment.add(new Fragment4());

        mRadioButton = new ArrayList<>();
        mRadioButton.add(R.id.RadioButton1);
        mRadioButton.add(R.id.RadioButton2);
        mRadioButton.add(R.id.RadioButton3);
        mRadioButton.add(R.id.RadioButton4);
        mRadioGroup.check(R.id.RadioButton1);
    }

    private void initView(){

        zan=findViewById(R.id.zan);
        ckpl=findViewById(R.id.ckpl);
        ckpl.setOnClickListener(this);
        zan.setOnClickListener(this);

        mViewPager2=findViewById(R.id.vp2);
        mViewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
            //当页面被选中时
            @Override
            public void onPageSelected(int position) {
                super.onPageSelected(position);
                mRadioGroup.check(mRadioButton.get(position));
            }
        });
        mRadioGroup = findViewById(R.id.RadioGroup);
        mRadioGroup.setOnCheckedChangeListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.zan:
                zanflag=!zanflag;//更改flag状态,初始为白色,点击一次,改变状态
                zan.setSelected(zanflag);//设置结果
                break;
            case R.id.ckpl:
                //跳转效果,弹出对话框,查看评论
                AlertDialog.Builder builder=new AlertDialog.Builder(this);
                builder.setTitle("评论");//设置对话框的标题
                builder.setMessage("张三:美丽的风景");//设置对话框的内容
                AlertDialog b=builder.create();
                b.show();
                break;
        }
    }

    @Override
    public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
        mViewPager2.setCurrentItem(mRadioButton.indexOf(checkedId));
    }
}

四、我常用的Android Studio 快捷键:

Ctrl+Alt+L  格式化代码

Ctrl+R 替换文本

Ctrl+F 查找文本

Ctrl+/ 或 Ctrl+Shift+/  注释(// 或者/*...*/ )

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值