Android开发小技巧总结


1 全屏

1 super.onCreate(savedInstanceState);        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
2  
3 requestWindowFeature(Window.FEATURE_NO_TITLE);
4  
5 setContentView(R.layout.main);

2 取得屏幕像素

1 DisplayMetrics dm=new DisplayMetrics();
2  
3 getWindowManager().getDefaultDisplay().getMetrics(dm);

3 简单拍照

01 button.setOnClickListener(new OnClickListener(){      
02  
03            @Override
04  
05            public void onClick(View arg0) {        
06  
07               Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");      startActivityForResult(intent,SELECT_PICTURE_FROM_CAMERA);
08  
09            }
10  
11         });
12  
13 //然后重载startActivityForResult添加自己的实现
14  
15 @Override
16  
17     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
18  
19     if( resultCode==RESULT_OK)
20  
21     {
22  
23         if(requestCode==SELECT_PICTURE_FROM_CAMERA)
24  
25         {
26  
27             File image=new File(Environment.getExternalStorageDirectory(),"camera.jpg");
28  
29             selectedImagePath=image.getAbsolutePath();
30  
31             Drawable d=Drawable.createFromPath(selectedImagePath);
32  
33             ImageView.setImageDrawable(d);
34  
35         }
36  
37     }
38  
39 }

4 从android本地多媒体图片文件夹中选择图片

01 Intent i=new Intent(Intent.ACTION_GET_CONTENT);
02  
03               i.setType("image/*");
04  
05               Intent wrapi=Intent.createChooser(i, "choose");
06  
07               startActivityForResult(wrapi, SELECT_PICTURE_FROM_FILE);
08  
09 //然后重载startActivityForResult添加自己的实现
10  
11 @Override
12  
13     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
14  
15     if( resultCode==RESULT_OK)
16  
17     {
18  
19         if(requestCode==SELECT_PICTURE_FROM_FILE )
20  
21         {
22  
23         Uri selectedImageUri = data.getData();
24  
25         selectedImagePath=getPath(selectedImageUri);
26  
27         imageView.setImageURI(selectedImageUri);
28  
29         }
30  
31     }
32  
33 }   //获取当前选择的图片,并显示在imageView上
34  
35     private String getPath(Uri uri)
36  
37     {
38  
39     String[] projection={MediaStore.Images.Media.DATA};
40  
41     Cursor cursor=managedQuery(uri,projection,null,null,null);
42  
43     int column_index=cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
44  
45     cursor.moveToFirst();
46  
47     return cursor.getString(column_index);
48  
49 }  
50  
51 //Query实现从图片数据库中查询到所要记录

5 Activity之间带内容的跳转

01 Intent intent = new Intent();
02  
03                   Bundle imageMsg = new Bundle();
04  
05                   imageMsg.putString("filePath", selectedImagePath); /               intent.putExtras(imageMsg);
06  
07                   intent.setClass(ActivityA.this,ActivityB.class);
08  
09                   startActivity(intent);
10  
11                   ActivityA.this.finish();

6 位图缩放

public Bitmap zoomImage(Bitmap bgimage, int newWidth, int newHeight) {   

       int width = bgimage.getWidth();

       int height = bgimage.getHeight();

 

       Matrix matrix = new Matrix();

 

       float scaleWidth = ((float) newWidth) / width;

       float scaleHeight = ((float) newHeight) / height;

 

       matrix.postScale(scaleWidth, scaleHeight);

       Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, width, height,

       matrix, true);

       return bitmap;

 

       }

7 Gallery的使用

Gallery gallery=(Gallery)findViewById(R.id.gallery);

        myImageAdapter imageadapter=new myImageAdapter(this); //传入context

        gallery.setAdapter(imageadapter);

        gallery.setOnItemClickListener(new Gallery.OnItemClickListener(){

           @Override

           public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {

              Bitmap selectedBitmap=BitmapFactory.decodeResource(getResources(),imageadapter.myImageIds[arg2]);

           }

        });

        gallery.setSelection(1);

//adapter的类定义

public class myImageAdapter extends BaseAdapter{

 

    int mGalleryItemBackground;

    private Context context;

    public Integer[] myImageIds={

           //图片的资源id号

    };

    public myImageAdapter(Context context)

    {

       this.context=context;

       TypedArray typed_array=context.obtainStyledAttributes(R.styleable.Gallery);

      

    mGalleryItemBackground=typed_array.getResourceId(R.styleable.Gallery_android_galleryItemBackground   , 0);

       //mGalleryItemBackground++;

       typed_array.recycle();

    }

    @Override

    public int getCount() {

       // TODO Auto-generated method stub

       return myImageIds.length;

    }

 

    @Override

    public Object getItem(int arg0) {

       // TODO Auto-generated method stub

       return arg0;

    }

 

    @Override

    public long getItemId(int arg0) {

       // TODO Auto-generated method stub

       return arg0;

    }

 

    @Override

    public View getView(int arg0, View arg1, ViewGroup arg2) {

       // TODO Auto-generated method stub

       ImageView imageView=new ImageView(context);

       imageView.setImageResource(myImageIds[arg0]);

      

       imageView.setScaleType(ImageView.ScaleType.FIT_XY);

       imageView.setLayoutParams(new Gallery.LayoutParams(128,128));

       imageView.setBackgroundResource(mGalleryItemBackground);

       return imageView;

    }

 

}

8 activity中使用线程

private Handler mHandler=new Handler();

private Runnable mRunnable=new Runnable()

    {

       @Override

       public void run() {

           // TODO Auto-generated method stub

       }

};

mHandler.post(mRunnable);              //启动线程

9 保存到android多媒体图片文件夹

android.provider.MediaStore.Images.Media.insertImage(getContentResolver(),resultBitmap, "picName", "descrition");

10 其他技巧摘录自网络,见链接

android开发环境安装

2 Android模拟器中使用sdcard

http://blog.csdn.net/unix_fans/archive/2009/08/20/4465038.aspx

http://blog.csdn.net/jinlking/archive/2009/03/03/3953319.aspx

Android Intent 大全

在Android中调用图片视频、音频、录音、拍照:

http://blog.csdn.net/bdwgbdwg/archive/2010/11/23/6029208.aspx

Android.Content.Provider.rar

Android中三种使用线程的方法.rar

11 Activity之间动态跳转(摘自网络)

//页面跳转
     int  version = Integer.valueOf(android.os.Build.VERSION.SDK);      
     if (version  >=  5 ) {      
        overridePendingTransition(R.anim.zoomin, R.anim.zoomout);  //此为自定义的动画效果,下面两个为系统的动画效果    
        //overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);      
        //overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);    
     }     
     //页面跳转

     //zoomin.xml

<?xml version="1.0" encoding="utf-8"?>
<set  xmlns:android="http://schemas.android.com/apk/res/android"    
        android:interpolator="@android:anim/decelerate_interpolator" >   
    <scale android:fromXScale="2.0"  android:toXScale= "1.0"    
           android:fromYScale="2.0"  android:toYScale= "1.0"    
           android:pivotX="50%p"  android:pivotY= "50%p"    
           android:duration="@android:integer/config_mediumAnimTime"  />
</set>
//zoomout.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"    
        android:interpolator="@android:anim/decelerate_interpolator"    
        android:zAdjustment="top" >   
    <scale android:fromXScale="1.0"  android:toXScale= ".5"    
           android:fromYScale="1.0"  android:toYScale= ".5"    
           android:pivotX="50%p"  android:pivotY= "50%p"    
           android:duration="@android:integer/config_mediumAnimTime"  />   
    <alpha android:fromAlpha="1.0"  android:toAlpha= "0"    
           android:duration="@android:integer/config_mediumAnimTime" /> 
</set>

12 模拟按钮press和release的效果

http://blog.csdn.net/sytzz/archive/2010/06/16/5673662.aspx

13 实现画出一个透明的点

  Paint paint=new Paint();

  paint.setColor(Color.BLUE); 
  paint.setAlpha(0);  

  canvas.drawPoint(x, y, paint);

  这样就好了吗? no,你需要把你的canvas建立在一个允许透明的bitmap上,如下

  blankBitmap=Bitmap.createBitmap(picWidth, picHeight, Config.ARGB_8888);//不是Config.sRGB_565
  Canvas c = new Canvas(blankBitmap); 


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值