当前位置: 首页 > news >正文

手机大全seo优化包括哪些

手机大全,seo优化包括哪些,武汉制作免费网页,站酷app目录 效果activity_main.xmlMainActivityImageItemImageAdapter 效果 项目本来是要做成图片保存到手机然后读取数据后瀑布流展示&#xff0c;但是有问题&#xff0c;目前只能做到保存到手机 activity_main.xml <?xml version"1.0" encoding"utf-8"?…

目录

        • 效果
        • activity_main.xml
        • MainActivity
        • ImageItem
        • ImageAdapter

效果

在这里插入图片描述
在这里插入图片描述
项目本来是要做成图片保存到手机然后读取数据后瀑布流展示,但是有问题,目前只能做到保存到手机

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="horizontal"><Buttonandroid:id="@+id/button"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="生成瀑布流"tools:ignore="MissingConstraints" /><androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/recycler_view"android:layout_width="match_parent"android:layout_height="match_parent" /></LinearLayout>

MainActivity

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;import android.Manifest;
import android.annotation.SuppressLint;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.os.FileUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {private ImageView imageView;private static final String TAG = "MainActivity";private static final int PERMISSION_REQUEST_CODE = 1;private Button mButton;private List<ImageItem> mImageList;private RecyclerView mRecyclerView;private ImageAdapter mAdapter;@SuppressLint("MissingInflatedId")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mButton = findViewById(R.id.button);mImageList = new ArrayList<>();mRecyclerView = findViewById(R.id.recycler_view);mRecyclerView.setLayoutManager(new LinearLayoutManager(this));mAdapter = new ImageAdapter(mImageList, this);mRecyclerView.setAdapter(mAdapter);mButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},PERMISSION_REQUEST_CODE);} else {// 开始解析HTML并下载图片startParsingAndDownloading();imageView = findViewById(R.id.image_view);Log.e(TAG,"开始解析HTML并下载图片");}}});}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);if (requestCode == PERMISSION_REQUEST_CODE) {if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {// 写入外部存储权限已授予,解析HTML并下载图片new ParseHtmlTask().execute("https://example.com"); // 替换为你要解析的HTML网页URL} else {// 用户拒绝了权限请求,可以根据需要进行处理}}}//开始解析HTMLprivate void startParsingAndDownloading() {new ParseHtmlTask().execute("https://home.meishichina.com/show-top-type-recipe.html");}private class ParseHtmlTask extends AsyncTask<String, Void, List<ImageItem>> {@Overrideprotected List<ImageItem> doInBackground(String... urls) {String url = urls[0];Document document = null;try {document = Jsoup.connect(url).get();Elements imgElements = document.select("div.pic");for (Element element : imgElements) {String imgUrl = element.select("a").select("img").attr("data-src");mImageList.add(new ImageItem(imgUrl));downloadImage(imgUrl);}} catch (IOException e) {Log.e(TAG,"111");//throw new RuntimeException(e);}return mImageList;}@Overrideprotected void onPostExecute(List<ImageItem> imageList) {mAdapter.notifyDataSetChanged();}private void downloadImage(String imgUrl) {Glide.with(MainActivity.this).downloadOnly().load(imgUrl).into(new CustomTarget<File>() {@Overridepublic void onResourceReady(@NonNull File resource, @Nullable Transition<? super File> transition) {// 下载完成后的处理逻辑,可根据需求进行保存或其他操作// 这里将图片文件保存到手机的公共图片目录下String fileName = "image_" + System.currentTimeMillis() + ".jpg";File destFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), fileName);try {copyFile(resource, destFile);} catch (IOException e) {e.printStackTrace();}}@Overridepublic void onLoadCleared(@Nullable Drawable placeholder) {// 可选的清除逻辑}});}private void copyFile(File sourceFile, File destFile) throws IOException {InputStream inputStream = null;OutputStream outputStream = null;try {inputStream = new FileInputStream(sourceFile);outputStream = new FileOutputStream(destFile);byte[] buffer = new byte[1024];int length;while ((length = inputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, length);}} finally {if (inputStream != null) {inputStream.close();}if (outputStream != null) {outputStream.close();}}}

ImageItem

public class ImageItem {private String imageUrl;public ImageItem(String imageUrl) {this.imageUrl = imageUrl;}public String getImageUrl() {return imageUrl;}
}

ImageAdapter

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;import com.bumptech.glide.Glide;import java.util.List;public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder> {private List<ImageItem> imageList;private Context context;public ImageAdapter(List<ImageItem> imageList, Context context) {this.imageList = imageList;this.context = context;}@NonNull@Overridepublic ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View view = LayoutInflater.from(context).inflate(R.layout.item_image, parent, false);return new ViewHolder(view);}@Overridepublic void onBindViewHolder(@NonNull ViewHolder holder, int position) {ImageItem item = imageList.get(position);String imageUrl = item.getImageUrl();// 使用Glide加载图片Glide.with(context).load(imageUrl).into(holder.imageView);}@Overridepublic int getItemCount() {return imageList.size();}public class ViewHolder extends RecyclerView.ViewHolder {ImageView imageView;public ViewHolder(@NonNull View itemView) {super(itemView);imageView = itemView.findViewById(R.id.image_view);}}
}
http://www.dinnco.com/news/45399.html

相关文章:

  • 网站建设未来发展前景深圳网站开发公司
  • 商务网站开发源码推广普通话活动方案
  • 广西壮族自治区市场监督管理局官网seo搜索引擎推广
  • 网站做语言切换深圳网站设计制作
  • PHP+Ajax网站开发典型实例短视频关键词seo优化
  • 网站开发流程6个阶段搜索排名提升
  • 自己做网站能赚钱吗石家庄seo网络推广
  • 自己的电脑做网站服务器 买的服务器 速度长春网站建设平台
  • 网站建设方式丨金手指排名26永久观看不收费的直播
  • web网站开发用到什么工具成都网站seo厂家
  • wordpress构架都是模板seo百度站长工具
  • 大连网站搜索排名提升湖北seo服务
  • 简述建设一个网站的步骤提高百度快速排名
  • 公众号里的网站怎么做seo实战密码第三版pdf
  • 关于加强政府网站建设工作如何进行电子商务网站推广
  • 织梦模板网站怎么上线百度客服人工电话24
  • 成品网站w灬 源码1688网页沈阳专业seo排名优化公司
  • 代做网站的好处google关键词挖掘工具
  • 做网站的公司主要是干啥seo优化裤子关键词
  • 利用业务时间做的网站与公司有关吗百度点击快速排名
  • 湛江 网站建设成都网站关键词排名
  • 建设农村信息网站正规seo关键词排名网络公司
  • 免费做金融网站网址搜索引擎
  • 犀牛云做网站编辑上传seo外包顾问
  • 徐汇网站建设营销策划方案怎么写?
  • 东莞整合网站建设公司友情链接图片
  • 网站快速收录付费入口新闻发布平台
  • 专门做母婴的网站软件定制
  • 手机网站登陆模板如何加入广告联盟赚钱
  • markdown同步WordPress重庆seo论