当前位置:  编程技术>移动开发
本页文章导读:
    ▪如何获取图像路径从照片库以及如何从 iphone 在照片库中检索图像?       我是新 iphone。在我小的应用程序,如何获取图像路径从照片库。下面的代码获取图像并放在 imageview 中使用此。-(IBAction) selectimage{UIImagePickerController*picker=[[UIImagePickerController alloc] init];picke.........
    ▪Android开发 调用照相机实现代码和注意事项      准备工作:设置 调用相机的回调码 和 设置 调用照相机拍照后保存图片的位置,名称,及后缀名(图片类型) private int xiangji=3;private File sdcardTempFile = new File("/mnt/sdcard/", "tmp_pic_&quo.........
    ▪iOS 动画总结----UIView动画      1.概述UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持。执行动画所.........

[1]如何获取图像路径从照片库以及如何从 iphone 在照片库中检索图像?
    来源:    发布时间: 2013-11-15

 

我是新 iphone。在我小的应用程序,如何获取图像路径从照片库。下面的代码获取图像并放在 imageview 中使用此。

-(IBAction) selectimage
{UIImagePickerController*picker=[[UIImagePickerController alloc] init];
picker.delegate=self;
picker.sourceType=UIImagePickerControllerSourceTypeSavedPhotosAlbum;[self presentModalViewController:picker animated:YES];[picker release];}-(void) imagePickerController:(UIImagePickerController*)UIPicker didFinishPickingMediaWithInfo:(NSDictionary*) info
{[UIPicker dismissModalViewControllerAnimated:YES];
imageview.image=[info objectForKey:"UIImagePickerControllerOriginalImage"];NSLog("Image Path=%@",imageview.image);}

其成功放到 Imageview。但我不能得到其 imagepath。我使用的 nslog("%@",imageview.image) ;它显示"图像路径 ="在控制台中。如何获得它的路径,以及如何从照片库中检索的照片。任何机构帮助我。先谢谢了。

 

 

回答 #1

UIImagePickerControllerOriginalImage仅返回的图像数据,根本没有提到其本地存储。我自己没有用,但我猜你所寻找的

NSURL* localUrl =(NSURL *)[info valueForKey:UIImagePickerControllerReferenceURL];

至少,这是我知道的检索任何 URL 的唯一方法。

若要检索图像,看一看这个问题。但也请记住,您已经使用检索的图像,

UIImage* image=(UIImage*)[info objectForKey:"UIImagePickerControllerOriginalImage"];

所以问自己,是否你真的需要这样。

本文链接


    
[2]Android开发 调用照相机实现代码和注意事项
    来源: 互联网  发布时间: 2013-11-15
准备工作:设置 调用相机的回调码 和 设置 调用照相机拍照后保存图片的位置,名称,及后缀名(图片类型)
	private int xiangji=3;
private  File sdcardTempFile = new File("/mnt/sdcard/", "tmp_pic_" + SystemClock.currentThreadTimeMillis() + ".jpg");


在button监听器中调用相机:


	//调用系统照相机拍照
		bt4.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);  
				Uri u=Uri.fromFile(sdcardTempFile); 
				intent.putExtra(MediaStore.Images.Media.ORIENTATION, 0); 
				intent.putExtra(MediaStore.EXTRA_OUTPUT, u); 
				intent.putExtra("return-data", true);
				startActivityForResult(intent, xiangji); 

			}
		});
回调函数中接收图片:
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    	 super.onActivityResult(requestCode, resultCode, data); 
    	if (resultCode == RESULT_OK) {
    		System.out.println("requestCode"+requestCode);
    		
    		switch (requestCode){
    		
    		case 2:
    			 Uri tuku_uri = data.getData();
        		 System.out.println(tuku_uri.getPath());
        		   ContentResolver tuku_cr = this.getContentResolver();
        		   try {
    				bmp = BitmapFactory.decodeStream(tuku_cr.openInputStream(tuku_uri));
    					MCShareLaunchShareHelper.shareContentWithBitmap("测试分享本地图片", bmp, "your share url", "", MoxunActivity.this);
    			} catch (FileNotFoundException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			break;
    		case 3:
        		   try {
        			   Uri xiangji_uri = Uri.parse(android.provider.MediaStore.Images.Media.insertImage(getContentResolver(), sdcardTempFile.getAbsolutePath(), null, null)); 
        			   System.out.println(xiangji_uri.getPath());
              		   ContentResolver xiangji_cr = this.getContentResolver();
              		   
              		   bmp = BitmapFactory.decodeStream(xiangji_cr.openInputStream(xiangji_uri));
    					MCShareLaunchShareHelper.shareContentWithBitmap("测试照相机图片", bmp, "your share url", "", MoxunActivity.this);
    			} catch (FileNotFoundException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			break;
    		}
    }

    } 
注意事项:调用相机和调用图库有所不同,就是相机是横屏显示,所以拍照完成后,你的Activity会重绘,这时你的回调函数就接收不到刚才拍到的照片,所以需要在AndroidManifest.xml中配置你的Activiy,禁用重绘
  <!--
      android:screenOrientation="landscape" 横屏
      android:screenOrientation="portrait" 竖屏
      android:configChanges="orientation|keyboardHidden" 旋转屏幕后不重绘Activity
     -->

           <activity
            android:configChanges="orientation|keyboardHidden"
            android:name="MCShareAppActivity"
            android:screenOrientation="portrait" />



作者:OnlyOneCoder 发表于2013-1-4 11:41:48 原文链接
阅读:0 评论:0 查看评论

    
[3]iOS 动画总结----UIView动画
    来源:    发布时间: 2013-11-15

1.概述

UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持。

执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码包装到一个代码块中。

2.UIView动画具体创建方法

- (void)buttonPressed
{
//  交换本视图控制器中2个view位置
    [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
    //UIView开始动画,第一个参数是动画的标识,第二个参数附加的应用程序信息用来传递给动画代理消息
    [UIView beginAnimations:@"View Flip" context:nil];
    //动画持续时间
    [UIView setAnimationDuration:1.25];
    //设置动画的回调函数,设置后可以使用回调方法
    [UIView setAnimationDelegate:self];
    //设置动画曲线,控制动画速度
    [UIView  setAnimationCurve: UIViewAnimationCurveEaseInOut];
    //设置动画方式,并指出动画发生的位置
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view  cache:YES];
    //提交UIView动画
    [UIView commitAnimations];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    //主要功能通过UIView动画完成2个试图控制器的切换
    
    self.blueController = [[BlueViewController alloc] initWithNibName:nil bundle:nil];
    //设置导航控制器view的大小占整个屏幕
    [self.blueController.view setFrame:CGRectMake(0, 0, self.view.frame.size.width , self.view.frame.size.height)];
    
    self.yellowController = [[YellowController alloc]initWithNibName:nil bundle:nil ];
    [self.yellowController.view setFrame:CGRectMake(0, 0, self.view.frame.size.width , self.view.frame.size.height)];
    //将2个控制器view插入到目前导航控制器视图上,yellowController后插入,显示在最前面
    [self.view insertSubview:self.blueController.view atIndex:0];
    [self.view insertSubview:self.yellowController.view atIndex:1];
    //创建导航控制器右按钮,按钮名字叫next
    //添加buttonPressed 事件
    self.rightBarItem = [[UIBarButtonItem alloc] initWithTitle:@"next" style:UIBarButtonItemStylePlain target:self action:@selector(buttonPressed)];
    //将按钮添加到导航控制器默认右按钮上
    self.navigationItem.rightBarButtonItem = self.rightBarItem;
}

有个问题:如果动画不放在按钮事件中,直接放到viewDidLoad里,程序首先执行这个controller,这时动画是不会显示的。

原因:出现这个问题是因为开机时候系统有个动画,系统动画和这个动画重复了。

解决方案:

1。将动画写在按钮事件中

2。利用定时器。

 

转:UIView动画更具体讲解;http://wsqwsq000.iteye.com/blog/1189183

 

areAnimationsEnabled

返回一个布尔值表示动画是否结束。
+ (BOOL)areAnimationsEnabled
返回值
如果动画结束返回YES,否则NO。

 

beginAnimations:context:

开始一个动画块
+ (void)beginAnimations:(NSString *)animationID context:(void *)context
参数
animationID
动画块内部应用程序标识用来传递给动画代理消息-这个选择器运用setAnimationWillStartSelector:和setAnimationDidStopSelector: 方法来设置。
context
附加的应用程序信息用来传递给动画代理消息-这个选择器使用setAnimationWillStartSelector: 和setAnimationDidStopSelector: 方法。
讨论
这个值改变是因为设置了一些需要在动画块中产生动画的属性。动画块可以被嵌套。如果在没有在动画块中调用那么setAnimation类方法将什么都不做。使用 beginAnimations:context:来开始一个动画块并用commitAnimations类方法来结束一个动画块。


commitAnimations

结束一个动画块并开始当他在动画块外时。
+ (void)commitAnimations
讨论
如果当前的动画块是最外层的动画块,当应用程序返回到循环运行时开始动画块。动画在一个独立的线程中所有应用程序不会中断。使用这个方法,多个动画可以被实现。查看setAnimationBeginsFromCurrentState:来了解如果开始一个动画当另外一个动画在播放的时候。


layerClass

返回类用来创建这一个本类的layer实例对象。
+ (Class)layerClass
返回值
一个用来创建视图layer的类
讨论
重写子类来指定一个自定义类用来显示。当在创建视图layer时候调用。默认的值是CALayer类对象。


setAnimationBeginsFromCurrentState
:
设置动画从当前状态开始播放。
+ (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState
参数
fromCurrentState
YES如果动画需要从他们当前状态开始播放。否则为NO。
讨论
如果设置为YES那么当动画在运行过程中,当前视图的位置将会作为新的动画的开始状态。如果设置为NO,当前动画结束前新动画将使用视图最後状态的位置作 为开始状态。这个方法将不会做任何事情如果动画没有运行或者没有在动画块外调用。使用beginAnimations:context:类方法来开始并用 commitAnimations类方法来结束动画块。默认值是NO。


setAnimationCurve
:
设置动画块中的动画属性变化的曲线。
+ (void)setAnimationCurve:(UIViewAnimationCurve)curve
讨论
动画曲线是动画运行过程中相对的速度。如果在动画块外调用这个方法将会无效。使用 beginAnimations:context:类方法来开始动画块并用commitAnimations来结束动画块。默认动画曲线的值是UIViewAnimationCurveEaseInOut。

 

setAnimationDelay:

在动画块中设置动画的延迟属性(以秒为单位)
+ (void)setAnimationDelay:(NSTimeInterval)delay
讨论
这个方法在动画块外调用无效。使用beginAnimations:context: 类方法开始一个动画块并用commitAnimations类方法结束动画块。默认的动画延迟是0.0秒。

 

setAnimationDelegate:

设置动画消息的代理。
+ (void)setAnimationDelegate:(id)delegate
参数
delegate
你可以用setAnimationWillStartSelector:和setAnimationDidStopSelector: 方法来设置接收代理消息的对象。
讨论
这个方法在动画块外没有任何效果。使用beginAnimations:context:类方法开始一个动画块并用commitAnimations类方法结束一个动画块。默认值是nil

 

setAnimationDidStopSelector:

设置消息给动画代理当动画停止的时候。
+ (void)setAnimationDidStopSelector:(SEL)selector
参数
selector
当动画结束的时候发送给动画代理。默认值是NULL。这个选择者须有下面方法的签名:animationFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context。
animationID
一个应用程序提供的标识符。和传给beginAnimations:context: 相同的参数。这个参数可以为空。
finished
如果动画在停止前完成那返回YES;否则就是NO。
context
一个可选的应用程序内容提供者。和beginAnimations:context: 方法相同的参数。可以为空。
讨论
这个方法在动画块外没有任何效果。使用beginAnimations:context: 类方法来开始一个动画块并用commitAnimations类方法结束。默认值是NULL。

 

setAnimationDuration:

设置动画块中的动画持续时间(用秒)
+ (void)setAnimationDuration:(NSTimeInterval)duration
参数
duration
一段动画持续的时间。
讨论
这个方法在动画块外没有效果。使用beginAnimations:context: 类方法来开始一个动画块并用commitAnimations类方法来结束一个动画块。默认值是0.2。

 

setAnimationRepeatAutoreverses:
设置动画块中的动画效果是否自动重复播放。
+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses
参数
repeatAutoreverses
如果动画自动重复就是YES否则就是NO。
讨论
自动重复是当动画向前播放结束後再重头开始播放。使用setAnimationRepeatCount: 类方法来指定动画自动重播的时间。如果重复数为0或者在动画块外那将没有任何效果。使用beginAnimations:context:类方法来开始一个动画块并用commitAnimations方法来结束一个动画块。默认值是NO。

 

setAnimationRepeatCount:

设置动画在动画模块中的重复次数
+ (void)setAnimationRepeatCount:(float)repeatCount
参数
repeatCount
动画重复的次数,这个值可以是分数。
讨论
这个属性在动画块外没有任何作用。使用beginA

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3