IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 移动终端作业(一) -> 正文阅读

[移动开发]移动终端作业(一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

基于RecyclerView的图片浏览器

一、作业要求

使用RecyclerView实现一个图片列表,如图1所示,当点击其中的任一个图片时,会在一个新的Activity中显示被点击的图片,如图2所示。

# 二、具体实现 ## 1.布局代码 activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="乔博春的homework展示"
        android:textSize="20sp"
        android:textColor="@color/white"
        />
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

recyclerview_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    tools:ignore="UseCompoundDrawables">

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:transitionName="sharedView"
        tools:ignore="ContentDescription" />

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:textSize="20sp"
        android:textColor="@color/black"        />
</LinearLayout>

activity_newitem.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <!--注意这里的sharedView-->
    <ImageView
        android:id="@+id/image1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@mipmap/ic_launcher"
        android:transitionName="sharedView"
        tools:ignore="ContentDescription" />
</LinearLayout>

二、程序代码

newitem.java

package com.example.homework_forth;
import android.os.Bundle;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
public class newitem extends AppCompatActivity {
    private ImageView image1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_newitem);
        image1 = findViewById(R.id.image1);
        image1.setOnClickListener(view -> ActivityCompat.finishAfterTransition(newitem.this));
    }
}

MainActivity.kt

package com.example.homework_forth
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
class MainActivity : AppCompatActivity() {
    private val coreList = ArrayList<core>()
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        initCore()
        val recyclerView = findViewById<View>(R.id.recycler_view) as RecyclerView
        val layoutManager = GridLayoutManager(this,3)
        recyclerView.layoutManager = layoutManager
        val adapter = coreAdapter(coreList)
        recyclerView.adapter = adapter
    }
    private fun initCore() {
        for (i in 0..1) {
            val Aiden = core("Aiden", R.drawable.p1pic)
            coreList.add(Aiden)
            val Mia = core("Mia", R.drawable.p2pic)
            coreList.add(Mia)
            val Jackson = core("Jackson", R.drawable.p3pic)
            coreList.add(Jackson)
            val Jacob = core("Jacob", R.drawable.p4pic)
            coreList.add(Jacob)
            val Emily = core("Emily", R.drawable.p5pic)
            coreList.add(Emily)
            val Emma = core("Emma", R.drawable.p6pic)
            coreList.add(Emma)
            val lucky = core("lucky", R.drawable.p7pic)
            coreList.add(lucky)
            val Noah = core("Noah", R.drawable.p8pic)
            coreList.add(Noah)
            val Lucas = core("Lucas", R.drawable.p9pic)
            coreList.add(Lucas)
            val Caden = core("Caden", R.drawable.p0pic)
            coreList.add(Caden)
        }
    }

}

core.kt

package com.example.homework_forth
class core( val name : String, val imageId : Int)

coreAdapter.java

package com.example.homework_forth;
import android.app.Activity;
import android.app.ActivityOptions;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
public class coreAdapter extends RecyclerView.Adapter<coreAdapter.ViewHolder> {
    private final List<core> mcoreList;
    public  coreAdapter (List <core> coreList){
        mcoreList = coreList;
    }
    static class ViewHolder extends RecyclerView.ViewHolder{
        View coreView;
        ImageView Image;
        TextView Name;

        public ViewHolder (View view)
        {
            super(view);
            coreView = view;
            Image = (ImageView) view.findViewById(R.id.image);
            Name = (TextView) view.findViewById(R.id.name);
        }
    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_item,parent,false);
        final ViewHolder holder = new ViewHolder(view);

        holder.coreView.setOnClickListener(view1 -> view1.getContext().startActivity(
                new Intent(view1.getContext(),newitem.class),
                ActivityOptions.makeSceneTransitionAnimation((Activity) view1.getContext(), view1,"image").toBundle()
        ));
        return holder;
    }
    @Override
    public void onBindViewHolder(ViewHolder holder, int position){

        core Core = mcoreList.get(position);
        holder.Image.setImageResource(Core.getImageId());
        holder.Name.setText(Core.getName());
    }
    @Override
    public int getItemCount(){
        return mcoreList.size();
    }
}

总结

最开始使用recyclerview布局完成后,对于监听事件重写一直出错,导致无法在虚拟机上运行,最后出现闪退现象,在多次查资料,看实验文件之后,结合intent跳转activity的方法,成功书写了新的监听.

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 19:12:58  更:2022-06-29 19:15:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/25 8:42:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码