android图片轮播+点击跳转广告页面

2023-05-16

Android轮播网络图片+点击跳转广告页面————————–一些新手总是很头疼怎么获取网络图片的url之后让它像一些广告那样轮播起来,点击图片之后跳转到指定网页。效果如下
轮播页广告页

在布局引用自定义控件

<?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:background="#FFFFFF"  
    tools:context="com.example.slideshowdemo.MainActivity"  >  


    <!-- 主题图片 -->  
    <com.example.sideshowview.SlideShowView
        android:id="@+id/slideshowView"  
        android:layout_width="fill_parent"  
        android:layout_height="200dp"  
        android:layout_centerHorizontal="true" />  

</LinearLayout>

MainActivity.java

public class MainActivity extends Activity {

    private String[] imageUrls = new String[]{  
            "http://d.hiphotos.baidu.com/image/pic/item/9f2f070828381f30b2bd028fac014c086e06f074.jpg",  
            "http://h.hiphotos.baidu.com/image/pic/item/2934349b033b5bb55e73afd833d3d539b600bc74.jpg",  
            "http://b.hiphotos.baidu.com/image/pic/item/ac345982b2b7d0a2bdfa8bbbceef76094b369ae1.jpg",  
            "http://g.hiphotos.baidu.com/image/pic/item/2e2eb9389b504fc213023f23e0dde71190ef6db3.jpg" } ;
    private String[] imageUris = new String[]{
            "http://www.baidu.com",
            "http://www.sina.com.cn",
            "http://www.taobao.com",
             "http://www.tudou.com" };

    private List<Map<String,String>> imageList = new ArrayList<Map<String,String>>();

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

        for (int i = 0; i < 4; i++) {
            Map<String,String> image_uri = new HashMap<String,String>();
            image_uri.put("imageUrls", imageUrls[i]);
            image_uri.put("imageUris", imageUris[i]);
            imageList.add(image_uri);
        }

        SlideShowView view = (SlideShowView) findViewById(R.id.slideshowView); 
        view.setImageUrls(imageList);
    }

}

自定义轮播的详细实现

public class SlideShowView extends FrameLayout implements OnClickListener{  

    // 使用universal-image-loader插件读取网络图片,需要工程导入universal-image-loader-1.8.6-with-sources.jar  
    private ImageLoader imageLoader = ImageLoader.getInstance();  

    //轮播图图片数量  
    private final static int IMAGE_COUNT = 5;  
    //自动轮播的时间间隔  
    private final static int TIME_INTERVAL = 5;  
    //自动轮播启用开关  
    private final static boolean isAutoPlay = true;   

    //自定义轮播图的资源  
    private List<Map<String,String>> imageUrls;  
    //放轮播图片的ImageView 的list  
    private List<ImageView> imageViewsList;  
    //放圆点的View的list  
    private List<View> dotViewsList;  

    private ViewPager viewPager;  
    //当前轮播页  
    private int currentItem  = 0;  
    //定时任务  
    private ScheduledExecutorService scheduledExecutorService;  

    private Context context;  

    //Handler  
    private Handler handler = new Handler(){  

        @Override  
        public void handleMessage(Message msg) {  
            // TODO Auto-generated method stub  
            super.handleMessage(msg);  
            viewPager.setCurrentItem(currentItem);  
        }  

    };  

    public SlideShowView(Context context) {  
        this(context,null);  
        // TODO Auto-generated constructor stub  
    }  
    public SlideShowView(Context context, AttributeSet attrs) {  
        this(context, attrs, 0);  
        // TODO Auto-generated constructor stub  
    }  
    public SlideShowView(Context context, AttributeSet attrs, int defStyle) {  
        super(context, attrs, defStyle);  
        this.context = context;  

        initImageLoader(context);  

        if(isAutoPlay){  
            startPlay();  
        }  

    }  
    /** 
     * 开始轮播图切换 
     */  
    private void startPlay(){  
        scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();  
        scheduledExecutorService.scheduleAtFixedRate(new SlideShowTask(), 1, 4, TimeUnit.SECONDS);  
    }  
    /** 
     * 停止轮播图切换 
     */  
    private void stopPlay(){  
        scheduledExecutorService.shutdown();  
    }  
    /** 
     * 初始化相关Data 
     */  
    private void initData(){  
        imageViewsList = new ArrayList<ImageView>();  
        dotViewsList = new ArrayList<View>();  
        initUI(context);  
    }  

    public void setImageUrls(List<Map<String,String>> imageList){
        this.imageUrls = imageList;
         initData();
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent intent = null;
        Bundle bundle = null;
        switch (v.getId()) {
        case 0:
            intent = new Intent(context,WebViewActivity.class);
            bundle = new Bundle();
            bundle.putString("url", imageUrls.get(0).get("imageUris"));
            intent.putExtras(bundle);
            context.startActivity(intent);
            break;
        case 1:
            intent = new Intent(context,WebViewActivity.class);
            bundle = new Bundle();
            bundle.putString("url", imageUrls.get(1).get("imageUris"));
            intent.putExtras(bundle);
            context.startActivity(intent);
            break;
        case 2:
            intent = new Intent(context,WebViewActivity.class);
            bundle = new Bundle();
            bundle.putString("url", imageUrls.get(2).get("imageUris"));
            intent.putExtras(bundle);
            context.startActivity(intent);
            break;
        case 3:
            intent = new Intent(context,WebViewActivity.class);
            bundle = new Bundle();
            bundle.putString("url", imageUrls.get(3).get("imageUris"));
            intent.putExtras(bundle);
            context.startActivity(intent);
            break;
        }
    }

    /** 
     * 初始化Views等UI 
     */  
    private void initUI(Context context){  
        if(imageUrls == null || imageUrls.size() == 0)  
            return;  

        LayoutInflater.from(context).inflate(R.layout.layout_slideshow, this, true);  

        LinearLayout dotLayout = (LinearLayout)findViewById(R.id.dotLayout);  
        dotLayout.removeAllViews();  

        // 热点个数与图片特殊相等  
        for (int i = 0; i < imageUrls.size(); i++) {  
            ImageView view =  new ImageView(context);  
            view.setId(i);
            view.setTag(imageUrls.get(i).get("imageUrls"));  
            if(i==0)//给一个默认图  
                view.setBackgroundResource(R.drawable.detail_p1);  
            view.setScaleType(ScaleType.FIT_XY);  
            view.setOnClickListener(this);
            imageViewsList.add(view);  

            ImageView dotView =  new ImageView(context);  
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);  
            params.leftMargin = 4;  
            params.rightMargin = 4;  
            dotLayout.addView(dotView, params);  
            dotViewsList.add(dotView);  
        }  

        viewPager = (ViewPager) findViewById(R.id.viewPager);  
        viewPager.setFocusable(true);  

        viewPager.setAdapter(new MyPagerAdapter());  
        viewPager.setOnPageChangeListener(new MyPageChangeListener());  
    }  

    /** 
     * 填充ViewPager的页面适配器 
     *  
     */  
    private class MyPagerAdapter  extends PagerAdapter{  

        @Override  
        public void destroyItem(View container, int position, Object object) {  
            // TODO Auto-generated method stub  
            //((ViewPag.er)container).removeView((View)object);  
            ((ViewPager)container).removeView(imageViewsList.get(position));  
        }  

        @Override  
        public Object instantiateItem(View container, int position) {  
            ImageView imageView = imageViewsList.get(position);  

            imageLoader.displayImage(imageView.getTag() + "", imageView);  

            ((ViewPager)container).addView(imageViewsList.get(position));  
            return imageViewsList.get(position);  
        }  

        @Override  
        public int getCount() {  
            // TODO Auto-generated method stub  
            return imageViewsList.size();  
        }  

        @Override  
        public boolean isViewFromObject(View arg0, Object arg1) {  
            // TODO Auto-generated method stub  
            return arg0 == arg1;  
        }  
        @Override  
        public void restoreState(Parcelable arg0, ClassLoader arg1) {  
            // TODO Auto-generated method stub  

        }  

        @Override  
        public Parcelable saveState() {  
            // TODO Auto-generated method stub  
            return null;  
        }  

        @Override  
        public void startUpdate(View arg0) {  
            // TODO Auto-generated method stub  

        }  

        @Override  
        public void finishUpdate(View arg0) {  
            // TODO Auto-generated method stub  

        }  

    }  
    /** 
     * ViewPager的监听器 
     * 当ViewPager中页面的状态发生改变时调用 
     *  
     */  
    private class MyPageChangeListener implements OnPageChangeListener{  

        boolean isAutoPlay = false;  

        @Override  
        public void onPageScrollStateChanged(int arg0) {  
            // TODO Auto-generated method stub  
            switch (arg0) {  
            case 1:// 手势滑动,空闲中  
                isAutoPlay = false;  
                break;  
            case 2:// 界面切换中  
                isAutoPlay = true;  
                break;  
            case 0:// 滑动结束,即切换完毕或者加载完毕  
                // 当前为最后一张,此时从右向左滑,则切换到第一张  
                if (viewPager.getCurrentItem() == viewPager.getAdapter().getCount() - 1 && !isAutoPlay) {  
                    viewPager.setCurrentItem(0);  
                }  
                // 当前为第一张,此时从左向右滑,则切换到最后一张  
                else if (viewPager.getCurrentItem() == 0 && !isAutoPlay) {  
                    viewPager.setCurrentItem(viewPager.getAdapter().getCount() - 1);  
                }  
                break;  
        }  
        }  

        @Override  
        public void onPageScrolled(int arg0, float arg1, int arg2) {  
            // TODO Auto-generated method stub  

        }  

        @Override  
        public void onPageSelected(int pos) {  
            // TODO Auto-generated method stub  

            currentItem = pos;  
            for(int i=0;i < dotViewsList.size();i++){  
                if(i == pos){  
                    ((View)dotViewsList.get(pos)).setBackgroundResource(R.drawable.compose_guide_check_box_number);  
                }else {  
                    ((View)dotViewsList.get(i)).setBackgroundResource(R.drawable.compose_guide_check_box_default);  
                }  
            }  
        }  

    }  

    /** 
     *执行轮播图切换任务 
     */  
    private class SlideShowTask implements Runnable{  

        @Override  
        public void run() {  
            // TODO Auto-generated method stub  
            synchronized (viewPager) {  
                currentItem = (currentItem+1)%imageViewsList.size();  
                handler.obtainMessage().sendToTarget();  
            }  
        }  

    }  

    /** 
     * 销毁ImageView资源,回收内存 
     */  
    private void destoryBitmaps() {  

        for (int i = 0; i < IMAGE_COUNT; i++) {  
            ImageView imageView = imageViewsList.get(i);  
            Drawable drawable = imageView.getDrawable();  
            if (drawable != null) {  
                //解除drawable对view的引用  
                drawable.setCallback(null);  
            }  
        }  
    }  


    public static void initImageLoader(Context context) {  
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
                                            .threadPriority(Thread.NORM_PRIORITY - 2)
                                            .denyCacheImageMultipleSizesInMemory()
                                            .discCacheFileNameGenerator(new Md5FileNameGenerator())
                                            .tasksProcessingOrder(QueueProcessingType.LIFO)
                                            .writeDebugLogs() 
                                            .build();  
        ImageLoader.getInstance().init(config);  
    }

}  

带指示器的布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent">  

    <android.support.v4.view.ViewPager  
        android:id="@+id/viewPager"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent" />  

    <LinearLayout android:id="@+id/dotLayout"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:layout_alignParentBottom="true"  
        android:padding="8dp"  
        android:gravity="right"  
        android:orientation="horizontal">  

        <View  
            android:id="@+id/v_dot1"  
            android:layout_width="8dp"  
            android:layout_height="8dp"  
            android:background="@drawable/compose_guide_check_box_default" />  

        <View  
            android:id="@+id/v_dot2"  
            android:layout_width="8dp"  
            android:layout_height="8dp"  
            android:layout_marginLeft="5dp"  
            android:background="@drawable/compose_guide_check_box_number" />  

    </LinearLayout>  
</RelativeLayout> 

点击广告跳转的web

public class WebViewActivity extends Activity{

    private WebView mWebView;
    private TextView mTitle;
    private ImageButton mBackBtn;
    private Bundle mBundle;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        setContentView(R.layout.activity_web);
        super.onCreate(savedInstanceState);
        mBundle = getIntent().getExtras();
        initView();
    }

    public void initView() {
        // TODO Auto-generated method stub
        mWebView = (WebView) findViewById(R.id.web_webview);
        mWebView.loadUrl(mBundle.getString("url"));
        mWebView.requestFocusFromTouch();
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        /**覆盖调用系统或自带浏览器行为打开网页*/
        mWebView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // TODO Auto-generated method stub
                view.loadUrl(url);
                return true;
            }
        });
        /**判断加载过程*/
        mWebView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                // TODO Auto-generated method stub
                if (newProgress == 100) {
                    // 网页加载完成

                } else {
                    // 加载中

                }
            }
        });
        initListener();
    }

    public void initListener() {
        // TODO Auto-generated method stub
        /**加载javascript*/
//      WebSettings mWebSetting = mWebView.getSettings();
//      mWebSetting.setJavaScriptEnabled(true);
//      mWebView.addJavascriptInterface(new Object() {       
//            public void clickOnAndroid() {       
//                new Handler().post(new Runnable() {       
//                    public void run() {       
//                      mWebView.loadUrl("javascript:wave()");       
//                    }       
//                });       
//            }       
//        }, "demo");

         /**打开页面时, 自适应屏幕*/
         WebSettings webSettings =   mWebView .getSettings();       
         webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放
         webSettings.setLoadWithOverviewMode(true);

         /**便页面支持缩放*/
         webSettings.setJavaScriptEnabled(true);  
         webSettings.setBuiltInZoomControls(true);
         webSettings.setSupportZoom(true);

    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android图片轮播+点击跳转广告页面 的相关文章

  • 关于Activity的onNewIntent方法

    前言 onNewIntent方法想必大家都知道 xff0c 是和Activity的启动模式结合起来使用的 xff0c 可以这个方法具体什么情况下被调用 xff0c 如何使用你清楚了吗 xff1f 今天就来一探究竟 xff0c 扫清疑惑 实验
  • 【算法学习】二分查找 binary-search (Java 参考)

    题目描述 给定一个 n 个元素有序的 xff08 升序 xff09 整型数组 nums 和一个目标值 target xff0c 写一个函数搜索 nums 中的 target xff0c 如果目标值存在返回下标 xff0c 否则返回 1 思路
  • 【算法学习】二维数组检索 search-a-2d-matrix(Java)

    题目描述 请写出一个高效的在m n矩阵中判断目标值是否存在的算法 xff0c 矩阵具有如下特征 xff1a 每一行的数字都从左到右排序 每一行的第一个数字都比上一行最后一个数字大 例如 xff1a 对于下面的矩阵 xff1a 1 3 5 7
  • 【算法学习】二维数组查找(Java)

    一 题目描述 此题源于 剑指 offer 在一个二维数组中 xff08 每个一维数组的长度相同 xff09 xff0c 每一行都按照从左到右递增的顺序排序 xff0c 每一列都按照从上到下递增的顺序排序 请完成一个函数 xff0c 输入这样
  • 【算法学习】链表数相加(Java)

    一 题目表述 给定两个代表非负数的链表 xff0c 数字在链表中是反向存储的 xff08 链表头结点处的数字是个位数 xff0c 第二个结点上的数字是十位数 xff09 xff0c 求这个两个数的和 xff0c 结果也用链表表示 输入 xf
  • 【算法学习】最长公共子序列(Java)

    一 题目描述 给定两个字符串 text1 和 text2 xff0c 返回这两个字符串的最长公共子序列的长度 一个字符串的 子序列 是指这样一个新的字符串 xff1a 它是由原字符串在不改变字符的相对顺序的情况下删除某些字符 xff08 也
  • JFugue4.0 中文说明

    简介 由音符 八度 音长 音色 xff08 乐器 xff0c 默认乐器为钢琴 xff09 组成 和弦 连音 速冻 控制器 键签名 Jfugue 可以简单并且允许工程师去快速创建音乐的原因是 MusicString xff0c 一个特殊格式描
  • 【算法学习】有效括号 valid-parentheses (Java 参考)

    题目描述 给定一个只包括 xff0c xff0c xff0c xff0c xff0c 的字符串 xff0c 判断字符串是否有效 有效字符串需满足 xff1a 左括号必须用相同类型的右括号闭合 左括号必须以正确的顺序闭合 注意空字符串可被认为
  • 【算法学习】约瑟夫环(含公式思想总结)(Java)

    目录 一 题目描述二 思路分析思路1 xff1a 模拟思路2 xff1a 数学方法递推公式 xff1a 推导思路why 为什么可以倒推how 如何倒推 三 参考代码四 测试连接 一 题目描述 这个问题是以弗拉维奥 约瑟夫命名的 xff0c
  • Ubuntu下matplotlib中文乱码

    原因 xff1a 由于matplotlib的默认安装字体不支持中文格式 解决思路 xff1a 将默认字体换成可以支持中文字体包 matplotlib默认的字体文件为 anaconda3 lib python3 7 site packages
  • 【算法学习】n个骰子的点数(Java)

    目录 一 题目描述二 思路分析核心公式公式推导依据 三 参考代码四 测试连接 一 题目描述 把n个骰子扔在地上 xff0c 所有骰子朝上一面的点数之和为s 输入n xff0c 打印出s的所有可能的值出现的概率 你需要用一个浮点数数组返回答案
  • 自动复制粘贴“机器人”(go)

    背景 最近遇到个问题 xff0c 需要将 html 批量转换为 markdown xff0c 尝试过很多转换库结果并不理想 xff0c 发现通过复制粘贴的方式效果十分不错 xff08 mac xff0c 从chrome浏览器 xff0c 复
  • Go Error 错误处理总结

    Go Error 一 设计理念 简单考虑成功而不是只有成功没有隐藏的控制流完全交给调用者控制 errorError are values xff08 Rob Pike xff09 二 错误与异常 go 中的错误处理主要使用到error 和
  • Linux创建新用户和key登陆

    1 root用户身份登陆 2 新增一个用户 useradd m new user name 3 切换至新用户 su new user name 4 生成公钥和私钥 ssh keygen t rsa 一路回车 5 cd ssh 6 cat i
  • 详解C++中的ANSI与Unicode和UTF8三种字符编码基本原理与相互转换

    目录 1 概述 2 Visual Studio中的字符编码 3 ANSI窄字节编码 4 Unicode宽字节编码 5 UTF8编码 6 如何使用字符编码 7 三种字符编码之间的相互转换 xff08 附源码 xff09 7 1 ANSI编码与
  • 让ubuntu16.04开机进入命令行模式

    让ubuntu16 04开机进入命令行模式 使用Ubuntu时 xff0c 有时候我们不想开机进入桌面 xff0c 想直接进入命令行 xff0c 这样启动的比较快 xff0c 1 首先我们修改grub文件 xff0c 改为如图所示 xff1
  • centos7 开启关闭服务

    centos 7 中使用systemctl工具来管理服务程序 xff0c 包括了service和chkconfig 启动一个服务 xff1a systemctl start firewalld service 关闭一个服务 xff1a sy
  • 基于SPWM的逆变器程序应用及自制电路

    自制逆变器的电路及程序应用 设计并制作 一个简易逆变器 xff0c 其结构如图所示 逆变器进行负载试验时 xff0c 需在其输出端接负载 通常情况下 xff0c 输出电能消耗在该负载上 2 基本要求 逆变器输出端仅连接电阻性负载 xff0c
  • DNS:Bind安全配置、视图

    Bind中的安全配置 Bind支持ACL xff08 访问控制列表 xff09 功能 xff1a 主要实现把一个或多个地址归并为一个集合 xff0c 并通过一个统一的名称调用 格式 xff1a acl acl name ip ip net
  • Mozilla 修复跨平台加密库 NSS 中的严重漏洞

    聚焦源代码安全 xff0c 网罗国内外最新资讯 xff01 编译 xff1a 代码卫士 Mozilla 修复了影响跨平台网络安全服务 NSS 加密库中一个严重的内存损坏漏洞 CVE 2021 43527 NSS 可用于开发启用安全功能的客户

随机推荐

  • Ubuntu下将anaconda打包移植到另一个台Ubuntu下,使用ananconda的离线包库,安装包

    由于某种需求 xff0c 需要将annaconda移植到另外一台Ubuntu下 xff0c 而且另一台无法联网 xff0c 而且需要安装一些包 xff0c 使用wheel和setup安装失败后使用的这种方法 思路 xff1a 将本地的ann
  • IT66121 720P@60配置文件

    这里为IT66121 720P 64 60的配置文件 xff0c 在Linux下我是使用i2cset工具先验证再写驱动的 xff0c 所以这里我也简单记录一下 IT66121分为两个bank xff0c 一个是bank0的配置 xff0c
  • CCS编译报错 error #10234-D: unresolved symbols remain

    最近刚刚接触CCS编译器 xff0c 然后自己搭建的工程中出现了这个报错 xff1a 检查了头文件以及库都是正常的 xff0c 但就不清楚是什么原因 xff0c 最后同事帮忙解决了这个问题 xff0c 如下解决 xff1a 工程右键选择Pr
  • AM4379 关于CCS下无法正常加载程序

    最近调试4379的时候发现了个问题 xff0c 这里记录下 将boot set设置为全1模式下 xff0c 然后加载程序 xff0c 发现加载是可以正常加载 xff0c 但是运行图标是灰色的 xff08 如图 xff09 xff0c 然后我
  • S5P6818 卸载驱动时报错

    调试6818的时候 xff0c 在卸载驱动时候报了这样的错误 xff1a rmmod can 39 t change directory to 39 3 4 39 39 No such file or directory 解决办法 xff1
  • S5P6818 移植phytool报错

    下载地址 xff1a GitHub wkz phytool Linux MDIO register access 编译 xff1a make CC 61 home tronlong 6818 arm 2009q3 bin arm none
  • Ubuntu16.04 卸载vmware

    1 先查看安装的虚拟机 vmware installer l 然后会显示版本和产品名称 Product Name Product Version 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • HPS是什么?包括哪些内容?

    文章来自 xff1a http bbs eeworld com cn thread 454766 1 1 html 1 HPS Hard processor system 字面意思就是硬件处理器系统 xff0c 应该指的是和arm核相连的硬
  • Ubuntu16.04 段错误(核心已转储)的解决办法

    由于软件需求我写了个测试软件 xff0c 我定义两个u8 的buf为1280 720 8的大小 xff0c 也差不多要接近于15M 的大小了 xff0c 在语法没有错误的情况下直接报段错误 xff08 核心已转储 xff09 的错误 查找了
  • WebDriver使用指南(完整篇)

    第1章 入门 1 1 下载selenium2 0的lib包 http code google com p selenium downloads list 官方UserGuide xff1a http seleniumhq org docs
  • 关于Virtualbox使用win7鼠标卡顿问题

    工作中要用到虚拟机 xff0c 自己装了一个win7系统 xff0c 结果发现鼠标卡顿的不行 xff0c 不能流畅运行 xff0c 于是查找了很多文章 xff0c 终于解决了问题 软件版本 xff1a virtualbox7 0 解决方案
  • Ubuntu挂载分区

    1 查看本地分区 xff0c 找到你想要挂载的分区名称 sudo fdisk l 图中为以整块2T硬盘 xff0c 分为5 6 7 8 9区 xff0c 以 dev sdb7 为例 xff0c 想要将其挂载到 home plan other
  • 允许远程该计算机的其他用户

    当你想进入服务器的其他用户时 xff0c 发现通过administrator是无法直接切换用户的 xff0c 那么我们应该怎么设置呢 xff1f 解决方案 xff1a 1 右击计算机 gt 属性 gt 高级系统设置 gt 远程 xff0c
  • 学习Linux 编程的几本好书

    这次涉及到了具体的平台 GNU Linux Linux下开发与明显不同于Windows平台的特点 xff0c 从开发工具到项目组织 xff0c 都有较大的差距 首先声明 xff0c 在做Linux平台开发之前 xff0c 首先要熟练使用Li
  • IE8报错:Unable to modify the parent container element before the child element is closed

    xfeff xfeff 转自 xff1a http blog csdn net xinwang article details 9786447 IE8中会报 HTML Parsing Error Unable to modify the p
  • APNs 访问不到的问题

    APNs会将链接太频繁的链接视为DDos攻击 xff0c 所以链接频率不要太高 目前每5分钟连接接一次 因为使用了加密链接 xff0c 会被GFW随机阻断 看脸 看有的说建议用国外VPS 单个ip连接每次发送消息数量不要超过1000条 xf
  • 谷歌原生DocumentUI文件浏览的原理

    相信多数想了解谷歌DocumentUI设计思想的码农都会遇到障碍 xff0c 文件浏览究竟是怎么实现的 xff0c 进入DocumentUI的UI层 xff0c 不难发现 xff0c 我们是通过查询数据库获取cursor xff0c 但是查
  • linux下快速查找文件

    版权声明 xff1a 本文为博主xxt 测试开发之路的原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https blog csdn net xxmonsto
  • Android 多语言对照表

    语言地区文件夹名称南非荷兰语南非values af rNA南非荷兰语纳米比亚values af rZA阿肯语加纳values ak rGH阿姆哈拉语埃塞俄比亚values am rET阿拉伯语阿拉伯联合酋长国values ar rAE阿拉伯
  • android图片轮播+点击跳转广告页面

    Android轮播网络图片 43 点击跳转广告页面 一些新手总是很头疼怎么获取网络图片的url之后让它像一些广告那样轮播起来 xff0c 点击图片之后跳转到指定网页 效果如下 在布局引用自定义控件 span class hljs pi lt