小编Mar*_*ark的帖子

如何在Android上安装JavaCV并使用FrameGrabber

有人能告诉我我做错了吗?这些是我遵循的步骤:

  1. 从android开发者网站下载了adt-bundle-windows
  2. 创建了一个新项目和一个libs/armeabi文件夹
  3. 将所有*.so文件从javacv-android-arm.jar,opencv-2.4.3-android-arm.zip和ffmpeg-1.0-android-arm.zip直接提取到新创建的"libs/armeabi"文件夹中,没有创建任何新的子目录.

    (我不明白的一部分是"从javacv-android-arm.jar中提取所有*.so文件",我只是在libs/armeabi文件夹中插入了javacv-android-arm.jar文件)

  4. 导航到项目>属性> Java构建路径>库,然后单击"添加JAR ...".
  5. 从新创建的"libs"文件夹中选择javacpp.jar和javacv.jar.

从那以后,我已经下载OpenCV2.4.3从这里往返的ffmpeg 这里和提取上我的C文件:/根.最后在设置我的系统路径后...,

C:\opencv\build\x64\vc10\bin;C:\ffmpeg-64\bin;C:\Program Files\Java\jdk1.7.0_10\bin
Run Code Online (Sandbox Code Playgroud)

...如果我尝试在我的Android应用程序中使用简单的FrameGrabber ...

import com.googlecode.javacv.FFmpegFrameGrabber;
import com.googlecode.javacpp.Loader;
import com.googlecode.javacv.*;
import com.googlecode.javacv.cpp.*;
import static com.googlecode.javacv.cpp.opencv_core.*;
import static com.googlecode.javacv.cpp.opencv_imgproc.*;
import static com.googlecode.javacv.cpp.opencv_calib3d.*;
import static com.googlecode.javacv.cpp.opencv_objdetect.*;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        FFmpegFrameGrabber i = new FFmpegFrameGrabber("/mnt/sdcard/SinglePerson.avi"); 
    }
Run Code Online (Sandbox Code Playgroud)

...我收到以下错误:

01-29 17:59:26.976: E/AndroidRuntime(30656): FATAL EXCEPTION: main
01-29 17:59:26.976: E/AndroidRuntime(30656): java.lang.NoClassDefFoundError: com.googlecode.javacv.FFmpegFrameGrabber
01-29 17:59:26.976: …
Run Code Online (Sandbox Code Playgroud)

android ffmpeg javacv

7
推荐指数
1
解决办法
9044
查看次数

使用ViewHolder的Android列表视图

我有个问题.点击后我试图在列表视图中更改图标.它可以正常工作,虽然不会仅修改点击的图标,但也不会修改那些未显示的图标.例如,如果我单击列表视图的第一项中的图标,则第五个图标也会更改.对于以下所有项目(列表视图的每五个项目)重复此行为.这是我的getView方法:

   public class AlphabeticalAdapter extends ArrayAdapter<String>
   {
       int layoutResourceId; 
       private final Context context;
       private List<String> data;
       private ProgressDialog mProgressDialog;
       private ImageView downloadImageButton;


       public AlphabeticalAdapter(Context context, int resource, List<String> data){
           super(context, resource, data);
           this.layoutResourceId = resource;
           this.context = context;
           this.data = data;    
       }

       public View getView(int position, View convertView, ViewGroup parent) {

          // View rowView = convertView;
           final ViewHolder viewHolder;

           if (convertView == null) {

               LayoutInflater inflater = (LayoutInflater) context
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);


               convertView  = inflater.inflate(R.layout.catalogslist_single_row, parent, false);

           viewHolder = new ViewHolder();

           viewHolder.catlogTitle=(TextView)convertView.findViewById(R.id.txtTitle); …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter android-listview android-viewholder

7
推荐指数
2
解决办法
3万
查看次数