日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > HTML >内容正文

HTML

基于RecyclerView的图片浏览器

發(fā)布時(shí)間:2024/1/8 HTML 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于RecyclerView的图片浏览器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔

文章目錄

  • 前言
  • 一、作業(yè)要求
  • 二、具體實(shí)現(xiàn)
    • 1.布局代碼
    • 2.程序代碼
  • 總結(jié)


前言

基于RecyclerView的圖片瀏覽器

一、作業(yè)要求

使用RecyclerView實(shí)現(xiàn)一個(gè)圖片列表,如圖1所示,當(dāng)點(diǎn)擊其中的任一個(gè)圖片時(shí),會(huì)在一個(gè)新的Activity中顯示被點(diǎn)擊的圖片,如圖2所示。


二、具體實(shí)現(xiàn)


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"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="xxx的homework展示"android:textSize="20sp"android:textColor="@color/white"/><androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/recycler_view"android:layout_width="match_parent"android:layout_height="wrap_content" /> </LinearLayout>

其中,orientation="vertical"是LinearLayout布局中不可缺少的重要屬性,并且如果想要后面的內(nèi)容在布局中是其他空間centre,也可以使用layout_gravity

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"><ImageViewandroid:id="@+id/image"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:transitionName="sharedView"tools:ignore="ContentDescription" /><TextViewandroid: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--><ImageViewandroid: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>

2.程序代碼

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;@Overrideprotected 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 RecyclerViewval layoutManager = GridLayoutManager(this,3)recyclerView.layoutManager = layoutManagerval 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);}}@Overridepublic 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;}@Overridepublic void onBindViewHolder(ViewHolder holder, int position){core Core = mcoreList.get(position);holder.Image.setImageResource(Core.getImageId());holder.Name.setText(Core.getName());}@Overridepublic int getItemCount(){return mcoreList.size();} }

總結(jié)

最開(kāi)始使用recyclerview布局完成后,對(duì)于監(jiān)聽(tīng)事件重寫(xiě)一直出錯(cuò),導(dǎo)致無(wú)法在虛擬機(jī)上運(yùn)行,最后出現(xiàn)閃退現(xiàn)象,在多次查資料,看實(shí)驗(yàn)文件之后,結(jié)合intent跳轉(zhuǎn)activity的方法,成功書(shū)寫(xiě)了新的監(jiān)聽(tīng).

總結(jié)

以上是生活随笔為你收集整理的基于RecyclerView的图片浏览器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。