Categories
木有技术 爪机爪机

【Android】升级ADT 22 引发的错误 (Unable to resolve superclass of Landroid/support/v4/app)

原文自:http://www.cnblogs.com/over140/archive/2013/05/22/3093284.html
感谢原作者,我都花了半天时间倒腾这个了…
=========================================
前言
今天心血来潮,又把ADT升级了一下,升级到了ADT 22,悲催的发现项目用不了了(能编译通过,运行出错)。
 
声明
欢迎转载,但请保留文章原始出处:)
博客园:http://www.cnblogs.com
农民伯伯: http://over140.cnblogs.com
 
正文
错误一:(警告)
Unable to resolve superclass of Landroid/support/v4/app/_ActionBarSherlockTrojanHorse;
(idailylife注:我这里的错误提示是app目录下的另外个东西,不过类似…)
错误二: (错误)
Activity也直接Caused by: java.lang.ClassNotFoundException
错误原因:
ADT 22中新增了Export,你会发现新增了Android Private Libraries库,默认可能Export没有选中,如图:
android-sdk-problem
勾选、重新编译即可。此外还可能出现Library工程中引用的Libs编译时不会加到主工程的问题,也是这个原因造成的,选中即可。
 
结束
感谢晓明同学指点,自己重装两遍也没找到问题。

Categories
不学无术 木有技术 爪机爪机

[转]android 人脸识别

source:http://blog.sina.com.cn/s/blog_677fb16e010148be.html

import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;
import android.media.FaceDetector;    // 人脸识别接口
import android.widget.ImageView;
import android.graphics.BitmapFactory;
import android.graphics.Bitmap;
import android.graphics.PointF;
import android.graphics.Matrix;
import android.util.Log;
import android.graphics.Canvas;
import android.graphics.Paint;
public class MyDetectActivity extends Activity {
       private ImageView mImageView;    // 图片显示控件
       private Bitmap mBitmap;
       private float mScale = 1F;
       @Override
       public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                mImageView = (ImageView) this.findViewById(R.id.image);
                detect();      // 识别函数
       }
       private void handleFace(FaceDetector.Face f) {        // 在图片上对每张脸进行处理
                PointF midPoint = new PointF();
                int r = ((int) (f.eyesDistance() * mScale * 1.5));         // 取眼睛间距离
                f.getMidPoint(midPoint);       // 取脸的中点
                midPoint.x *= mScale;
                midPoint.y *= mScale;
                Canvas c = new Canvas(mBitmap);
                Paint p = new Paint();
                p.setAntiAlias(true);
                p.setAlpha(0x80);
                c.drawCircle(midPoint.x, midPoint.y, r, p)        // 用半透明标出人脸区域;
                mImageView.setImageBitmap(mBitmap);          // 显示图片
       }
       private void detect() {
                Matrix matrix = new Matrix();
                FaceDetector.Face[] mFaces = new FaceDetector.Face[3];         // 定义最多识别三张脸
                int mNumFaces = 0;
                mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.baby);     // 取原始图
                if (mBitmap == null) {
                         return;
                }
                if (mBitmap.getWidth() > 256) {
                         mScale = 256.0F / mBitmap.getWidth();
                }
                matrix.setScale(mScale, mScale);
                Bitmap faceBitmap = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap
                                   .getWidth(), mBitmap.getHeight(), matrix, true);        // 生成缩放后的新图
                mScale = 1.0F / mScale;
                if (faceBitmap != null) {
                         FaceDetector detector = new FaceDetector(faceBitmap.getWidth(),
                                            faceBitmap.getHeight(), mFaces.length); // 创建识别器
                         mNumFaces = detector.findFaces(faceBitmap, mFaces);    // 识别
                         if (mNumFaces > 0) {
                                   for (int i = 0; i < mNumFaces; i++) {
                                            handleFace(mFaces[i]);        // 调用函数对人脸画面进行处理
                                   }
                         }
                }
       }
}