巧用PhotoChooserTask选择器,制作本地TXT阅读器

     众所周知,Windows Phone 7 应用程序模型将每个应用分离成各自独立的沙箱,包括运行时(包括内存的隔离)和文件存储。因此,很难像以前一样从计算中复制一个本地文件到手机,然后,使用程序对文件进行阅读。因此制作一个纯本地文件的阅读器,是相当困难的。因此网上大部分阅读器采用的全部是实时在线的模式,对于在“漫长”的上下班路上常看小说的人来说,简直是一场恶梦。要走多少流量?难道就没有办法制作一款像往常一样的本地TXT小说阅读器吗?

      有什么办法呢,首先文件要能通过PC同步到手机上,第二就是在自己的程序中要读到这个文件,借助这个来传递文本内容。使用zumn可同步的文件包括:图片、视频、音乐

而自己的程序中通过选择器得到的内容包括:相机图片,电话号码和邮件,以及图片库中的图片。这么一看,这个中载文件就非图片这种介莫数了。可以同过在PC端将文本内容,加在某张图片里,通过同步软件同步到手机上再利用PhotoChooserTask选择器来获取内容,并显示在界面上。大功即可告成。接下来,我们就按如上思想实现整个流程:

     1.       处理本地图片

首先创建一个Windows Console程序,进行图片的处理,Main增加如下代码:

 

ExpandedBlockStart.gif 代码
//  读取图片
byte [] s  =  File.ReadAllBytes( " C:\\a.jpg " );
            
// 读取文本
byte [] s1  =  Encoding.UTF8.GetBytes( " Windows Phone 7**真实内容 " );

// 合并图片和文本
byte []   b3    =     new     byte [s.Length + s1.Length]; 
Array.Copy(s   ,   b3   ,   s.Length   );
Array.Copy(s1, 
0 , b3, s.Length, s1.Length);

// 输出图片
File.WriteAllBytes( " C:\\b.jpg " ,b3);

 

 

2.    同步图片

使用Zune将图片同步到手机,如下图:

 

 

3.       从手机读取图片中的文字内容

这里我们就要用到本文的关键利器PhotoChooserTask选择器 ,我们在windows Phone 7的程序MainPage中增加如下代码:

 

ExpandedBlockStart.gif 代码
   public  MainPage()
        {
            InitializeComponent();
            PhotoChooserTask photoChooserTask 
=   new  PhotoChooserTask();
            photoChooserTask.Completed 
+=   new  EventHandler < PhotoResult > (photoChooserTask_Completed);
            photoChooserTask.Show();
        }

        
void  photoChooserTask_Completed( object  sender, PhotoResult e)
        {
            StreamReader sr 
=   new  StreamReader(e.ChosenPhoto);
            
string  s  =  sr.ReadToEnd();

            
int  i =  s.IndexOf( " Windows Phone 7** " );

            textBlock1.Text 
=  s.Substring(i ++   " Windows Phone 7** " .Length);
        }

 

 

 运行程序到图片库选择同步的图片,即可读取图片中的内容.我们在这个原理的基础上再进一步进行修改,制作一个本地小说阅读器是不是很好的解决方案呀!呵呵.

 

 

转载于:https://www.cnblogs.com/wangmiao/archive/2010/12/30/1922433.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值