加载中…
相册专辑
加载中…
个人资料
aqiusen
aqiusen
  • 博客等级:
  • 博客积分:0
  • 博客访问:17,656
  • 关注人气:2
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
搜博主文章
访客
加载中…
博文
标签:

学习

分类: Android学习
第一种方式:获取系统中的图片,并简单的显示:
//直接回跳转到系统相册中去让我们选择一张图片,选择完之后回activity
//显示图片之后我们点击的时候才会调用onActivityResult
private void getFileInfoListData()
{
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType('image
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 0 && resultCode == RESULT_OK)
{
Uri uri;
if(data!=null){
uri = data.getData();
uri.getPath();
//返回的是解码之后的路径如:uri.getPath()-->/external/images/media/128
System.out.println('uri.getPath()-->'+uri.getPath());
FileInfo temp = new FileInfo();
Bitmap bitmap = null;
ContentResolver resolver = getContentResolver();
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

学习

分类: Android学习

GridView的一些特殊属性:

1.android:numColumns=”auto_fit”   //GridView的列数设置为自动

2.android:columnWidth=”90dp '      

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

学习

分类: c语言学习
#include
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2013-09-23 15:19)
代码段(text):代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存种的镜像。代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入(修改)操作——它是不可写的。
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: c语言学习
3352 移位的标示方法是    335-(335>>5<<5)
就是先除以32 之后乘以32 ,相减之后得到的就是余数
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: linux学习文档

 #include  
#include  
#include  
#include  
#include  
//#define DEBUG 1 
#define NUM 4 
int count1 = 0;
int count2 = 0;
int count3 = 0;
int count4 = 0;
char buf1[100]={0};
char buf2[100]={0};
char buf3[100]={0};
char buf4[100]={0};
int n=0; 
pthread_mutex_t mylock=PTHREAD_MUTEX_INITIALIZER;//互斥量 
pthread_cond_t qready=PTHREAD_COND_INITIALIZER;//条件变量 
 
 
void * thread_func(void *arg) 

    int param=(int)arg; 
    char c='A'+param; 
    int ret,i=0; 
    for (; i < 10; i++) 
   
        pthread_mutex_lock(&mylock); 
        while (param != n)  //

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: c语言学习
#include
int main(){
int a[3]={1,2,3};
int *b=a;
b=b+1;
printf('%d\n',*a);
printf('%p\n',&a+1);printf('%p\n',a);
printf('%p\n',b);
int c[5]={1,2,3,4,5};
int *ptr=(int *)(&c+1);//&a是数组指针,其类型为 int (*)[5];而指针加1要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同。
//a是长度为5的int数组指针,所以要加 5*sizeof(int)
printf('\n%d,%d\n',*(c+1),*(ptr-1));//c表示的是首地址,类型是int的因此+1只会向后移动一个数字
return 0;

}
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: c语言学习
typedef struct {
unsigned char a;
unsigned char b;
unsigned char c;
unsigned char d;
}D;
D dd={'1','2','3','4'};

    unsigned int data=*(unsigned int *)(&dd);
    unsigned char * p =(unsigned char*)(&data);
    printf('dd.a=%c\n',p[0]);
    printf('dd.b=%c\n',p[1]);
    printf('dd.c=%c\n',p[2]);
    printf('dd.d=%c\n',p[3]);
    printf('dd.d=%c\n',((unsigned char *)(&data))[3]);  这个是另外一种写法,记住括号的位置
不能写成(unsigned char *)(&data))[3],这个强制转型的就是 数组的值,不是我们要的强转data了,意思弄错了
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

分类: LINUX

如何理解Netfilter中的连接跟踪机制?

    

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

DNAT(Destination Network Address Translation,目的地址转换) 通常被叫做目的映谢。而SNAT(Source Network Address Translation,源地址转换)通常被叫做源映谢。

这是我们在设置Linux网关或者防火墙时经常要用来的两种方式。以前对这两个都解释得不太清楚,现在我在这里解释一下。

首先,我们要了解一下IP包的结构,如下图所示:

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有