package com.example.viewpager01;

import java.util.ArrayList;

import java.util.List;





import android.app.Activity;

import android.app.LocalActivityManager;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.support.v4.view.PagerAdapter;

import android.support.v4.view.ViewPager;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.view.Window;

import android.widget.ImageView;

import android.widget.ImageView.ScaleType;





public class MainActivity extends Activity {





private ViewPager viewPager;

private List<View> viewList;

private View view1, view2, view3;  //

//Context context = null;

LocalActivityManager manager = null;  //这里要实现把Activity转换为View

private int[] ids = { R.drawable.guide_page_1, R.drawable.guide_page_2,R.drawable.guide_page_3 };//存放图片数组,这里要实现把图片转换为View

   

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);



requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.user_lader);





manager = new LocalActivityManager(this , true);

    manager.dispatchCreate(savedInstanceState);

       

    

    viewList=new ArrayList<View>(); 

for (int i = 0; i < ids.length; i++) {

ImageView iv = new ImageView(this);

iv.setImageResource(ids[i]);

ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(

ViewGroup.LayoutParams.FILL_PARENT,

ViewGroup.LayoutParams.FILL_PARENT);

iv.setLayoutParams(params);

iv.setScaleType(ScaleType.FIT_XY);





viewList.add(iv);

}



Intent intent = new Intent(getApplicationContext(), A.class);

viewList.add(getView("A", intent));

 





// 1,

viewPager = (ViewPager) findViewById(R.id.view_pager);







// 2,PageAdapter 必须重写的四个函数:





/*

* boolean isViewFromObject(View arg0, Object arg1) int getCount() void

* destroyItem(ViewGroup container, int position,Object object) Object

* instantiateItem(ViewGroup container, int position)

*/

viewPager.setAdapter(new PagerAdapter() {

@Override

public int getCount() {

if(viewList==null)

{

  return 0;

}

else

{

 return viewList.size();  //getCount():返回要滑动的VIew的个数

}

}





@Override

public boolean isViewFromObject(View arg0, Object arg1) {

//return arg0 == arg1;    //isViewFromObject():对于这个函数就先不做解说,大家眼下先知道它要这样重写即可了。后面我们会对它进行改写。

//System.out.println("position===isViewFromObject======"+(int)Integer.parseInt(arg1.toString())+(arg0 == viewList.get((int)Integer.parseInt(arg1.toString()))));

return arg0 == viewList.get((int)Integer.parseInt(arg1.toString()));////依据传来的key,找到view,推断与传来的參数View arg0是不是同一个视图 

}





@Override

public Object instantiateItem(ViewGroup container, int position) {

container.addView(viewList.get(position));      //做了两件事。第一:将当前视图加入到container中。第二:返回当前View

//return viewList.get(position);

//System.out.println("position===instantiateItem======"+position);

return position;  // //把当前新增视图的位置(position)作为Key传过去  

}





@Override

public void destroyItem(ViewGroup container, int position,

Object object) {   

if(position==1)

{

viewList=null;

}

else

{

 //System.out.println("position====destroyItem====="+position);

container.removeView(viewList.get(position));   //从当前container中删除指定位置(position)的View;

}

}





});

}







private View getView(String id, Intent intent) {

       return manager.startActivity(id, intent).getDecorView();

   }





}

Activity转换为View和把图片转换为View的更多相关文章

  1. android 开发 View _8_ 动态图片自定义View

    转载地址:https://blog.csdn.net/mengks1987/article/details/77770922 先来看下效果: 是不是有一种熟悉感,其实这种效果使用序列帧动画也是可以实现 ...

  2. bug_ _图片_android.view.InflateException: Binary XML file line #1: Error inflating class <unknown>

    =========== 1   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zgan.communit ...

  3. Android View转换成图片保存

    package zhangphil.viewtoimage; import java.io.File;import java.io.FileOutputStream; import android.o ...

  4. view保存为图片

    一.概述 简书.微博.便签等都有将文章保存为图片的功能.笔者臆测,此功能的实现原理如下. 二.实现 2.1将View保存成Bitmap对象 方法1(亲测有效) private Bitmap makin ...

  5. windows+caffe(二)——图片转换为levedb格式

    借鉴于langb2014的  http://blog.csdn.net/langb2014/article/details/50458520 与liukailun09的  http://blog.cs ...

  6. c# winform 把彩色图片转换为灰色的图片,变灰,灰度图片,速度很快,safe,unsafe

    把彩色图片转换为灰色的图片,直接用.net接口遍历每个像素点转换的效率非常低,800K的图片65万像素我的电脑要用5分钟,而用了unsafe,速度提高了几千倍,同样的图片只用了0.几秒 附一个常用的遍 ...

  7. 设置一个View的背景图片的集中方法

    控制器view的背景图片的方法, 四种: 1.直接在控制器view上添加一个imageView大小设置的和view一样 UIImageView *beijingimage = [UIImageView ...

  8. BMP图片转换为JPEG图片

    原文:BMP图片转换为JPEG图片 昨天在家学习,发现很多人把BMP图片转换为其它图片格式,有些人写得简单,有些人写得复杂. Insus.NET在想,一直在做文件上传,下载,或是图片剪切,都有进行过文 ...

  9. 将图片转换为base64 格式

    1.页面上的图片,转换成base64格式,可以通过canvas 的 toDataURL 例子:给定图片的url 将图片转换为base64 var imageSrc = "../images/ ...

随机推荐

  1. 玩具(toy)

    题目 试题2:玩具(toy) 源代码:toy.cpp 输入文件:toy.in 输出文件:toy.out 时间限制:1s 空间限制:256MB 题目描述 商店正在出售小C最喜欢的系列玩具,在接下来的n周 ...

  2. MyBatis学习总结(17)——Mybatis分页插件PageHelper

    如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊情况请看重要提示. 想要使用分页插件?请看如何使用分页插件. 物理分页 该 ...

  3. Java基础学习总结(23)——GUI编程

    一.AWT介绍 所有的可以显示出来的图形元素都称为Component,Component代表了所有的可见的图形元素,Component里面有一种比较特殊的图形元素叫Container,Containe ...

  4. 洛谷—— P1036 选数 || Vijos——选数

    https://vijos.org/p/1128|| https://www.luogu.org/problem/show?pid=1036#sub 描述 已知 n 个整数 x1,x2,…,xn,以及 ...

  5. 个人学习源码的 HBase误区的总结 与 架构图

    HDFS 的备份功能不是给 基于 HBase 等 基于HDFS 的项目做备份的.   如果 HBase 需要备份,那么久需要设置 备份(快照 )功能.   HMaster . kafka 等无主结构并 ...

  6. 给一个执行在windows 7和NAT下的VMWARE虚拟机分配固定IP

    虚拟机上装了个oracleserver,每次vmware重新启动或者resume时总要分配新的IP地址,这样就得改动windows下的client配置,所以须要想办法把IP地址固定住. DHCP服务在 ...

  7. 怎样用第三方开源免费软件portecle从https站点上导出SSL的CA证书?

    在我这篇文章中.我提到了怎样用OpenSSL从https站点上导出SSL的CA证书?  这样的方式不太直观,且须要用户自己手工拷贝.然后另存为文件,那么有没有更好更方便的工具呢? 幸运的是,有热心于开 ...

  8. 深入理解maven及应用(一):生命周期和插件

    在项目里用了快一年的maven了,近期突然发现maven项目在eclipse中build时很慢,由于经经常使用clean install命令来build项目,也没有管那么多,但近期实在受不了乌龟一样的 ...

  9. 如何在IDEA中创建web项目并且部署到Tomcat中

    步骤1:File->New Project, 步骤2:选择Project SDK为1.7 -> Next -> Finish(JDK)我自己的是1.7(这里的project,跟ecl ...

  10. apiCloud手动检测更新

    有时候需要给用户一个自主的权利,自主检测app是否是最新版本. 如何实现? 1.点击调用接口,检测是否有更新. 默认APICloud会自动检测版本更新,用户也可以在config.xml里配置autoU ...