打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android开发小技巧总结

Android开发小技巧总结

您的评价:
     
还行
总结下一些相关技巧。

1 全屏

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

2 取得屏幕像素

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

3 简单拍照

01button.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本地多媒体图片文件夹中选择图片

01Intent 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之间带内容的跳转

01Intent 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 其他技巧摘录自网络,见链接

1 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

3 Android Intent 大全

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

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

4 Android.Content.Provider.rar

5 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); 


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
android imageview 多点触碰(MultiTouch)实现图片拖拽移动缩放
Android开发返回拍摄的图片
游戏融合SDK开发
Android控件系列之相册Gallery&Adapter适配器入门&控件缩放动画入门
在Android上使用Tensorflow
Android 仿微信之界面导航篇(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服