当前位置:  编程技术>移动开发
本页文章导读:
    ▪截屏存图片到相本或者指定路径        截屏存图片到相册或者指定路径 #import <QuartzCore/QuartzCore.h> UIGraphicsBeginImageContext(currentView.bounds.size); //currentView当前的view [currentView.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *viewIma.........
    ▪ [Object-C]@class的含意        [Object-C]@class的含义 在Objective-c中,当一个类需要引用另一个类,即建立复合关系的时候,需要在类的头文件中建立被引用类的指针。 如: Car.h #import @interface Car:NSObject { Tire *tires[4]; .........
    ▪ 【6.13】利用LayoutInflater兑现Layout的切换       【6.13】利用LayoutInflater实现Layout的切换   主要是利用LayoutInflater的inflate方法   相当于findViewById,只不过查找的是layout的资源   LayoutInflater mLayoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_I.........

[1]截屏存图片到相本或者指定路径
    来源: 互联网  发布时间: 2014-02-18
截屏存图片到相册或者指定路径
#import <QuartzCore/QuartzCore.h>

UIGraphicsBeginImageContext(currentView.bounds.size); //currentView当前的view

[currentView.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);


存入到指定路径用以下方法:
- (BOOL)writeImage:(UIImage*)image toFileAtPath:(NSString*)aPath
{
    if ((image == nil) || (aPath == nil) || ([aPath isEqualToString:@""]))
        return NO;
    @try
    {
        
        NSData *imageData = nil;
        NSString *ext = [aPath pathExtension];
        if ([ext isEqualToString:@"png"])
        {
            imageData = UIImagePNGRepresentation(image); 
        }
        else 
        {
            // the rest, we write to jpeg
            
            // 0. best, 1. lost. about compress.
            
            imageData = UIImageJPEGRepresentation(image, 0);     
            
        }
     
        if ((imageData == nil) || ([imageData length] <= 0))
            return NO;
        
        [imageData writeToFile:aPath atomically:YES];       
        return YES;
    }
    @catch (NSException *e) 
    {
        NSLog(@"create thumbnail exception.");
    }
    return NO;
}


    
[2] [Object-C]@class的含意
    来源: 互联网  发布时间: 2014-02-18
[Object-C]@class的含义

在Objective-c中,当一个类需要引用另一个类,即建立复合关系的时候,需要在类的头文件中建立被引用类的指针。 如:

Car.h

#import 
 
@interface Car:NSObject
{
    Tire *tires[4];
    Engine *engine;
}
 
…
实现类我们先省略,如果你直接这么编译,编译器会报错,告诉你它不知道Tire和Engine是什么。

这时候有两个选择,一个是import这两个被引用类的头文件,另一个是使用@class声明Tire和Engine是类名。 二者的区别在于:

import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑,后面会再告诉你。 
在头文件中, 一般只需要知道被引用的类的名称就可以了。 不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称。 而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。 
在编译效率方面考虑,如果你有100个头文件都#import了同一个头文件,或者这些文件是依次引用的,如A–>B, B–>C, C–>D这样的引用关系。当最开始的那个头文件有变化的话,后面所有引用它的类都需要重新编译,如果你的类有很多的话,这将耗费大量的时间。而是用@class则不会。 
如果有循环依赖关系,如:A–>B, B–>A这样的相互依赖关系,如果使用#import来相互包含,那么就会出现编译错误,如果使用@class在两个类的头文件中相互声明,则不会有编译错误出现。 
所以,一般来说,@class是放在interface中的,只是为了在interface中引用这个类,把这个类作为一个类型来用的。 在实现这个接口的实现类中,如果需要引用这个类的实体变量或者方法之类的,还是需要import在@class中声明的类进来.

如:
a.h

@class Rectangle;
@interface A : NSObject {
…
}
a.m

#import Rectangle
@implementation A

转自: http://blog.sina.com.cn/s/blog_69081e060100p4r1.html


    
[3] 【6.13】利用LayoutInflater兑现Layout的切换
    来源: 互联网  发布时间: 2014-02-18
【6.13】利用LayoutInflater实现Layout的切换

 

主要是利用LayoutInflater的inflate方法

 

相当于findViewById,只不过查找的是layout的资源

 

LayoutInflater mLayoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

linearLayout1 = (LinearLayout) mLayoutInflater.inflate(R.layout.main, null);

linearLayout2 = (LinearLayout) mLayoutInflater.inflate(R.layout.main2, null);

 

再通过检测动作,执行setContentView(layout),可以完成切换


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
编程语言 iis7站长之家
▪根据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