`
zhanglibin1986
  • 浏览: 381755 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Gallery3 D

阅读更多
  • 网上找的比较好的学习Gallery3D的资料
  • 进度
  • 把它安装到模拟器上


网上找的比较好的学习Gallery3D的资料
http://www.linuxgraphics.cn/android/gallery3d_render.html

http://www.eoeandroid.com/thread-23080-1-1.html

http://www.linuxgraphics.cn/android/index.html

http://developer.51cto.com/art/201001/180764.htm


进度:
HudLayer 144:

引用
PopupMenu.Option[] deleteOptions = {
                new PopupMenu.Option(context.getResources().getString(Res.string.confirm_delete), resources
                        .getDrawable(Res.drawable.icon_delete), new Runnable() {
                    public void run() {
                        deleteSelection();
                    }
                }),
                new PopupMenu.Option(context.getResources().getString(Res.string.cancel), resources
                        .getDrawable(Res.drawable.icon_cancel), new Runnable() {
                    public void run() {

                    }
                }), };


MediaFeed 244:删除文件
public void performOperation(final int operation, final ArrayList<MediaBucket> mediaBuckets, final Object data)


ImageManager.java:

 protected Void execute() throws InterruptedException, ExecutionException {
            Log.d(TAG, "-----------------------------------execute()");
            boolean complete = false;
            try {
                String[] projection = new String[] { ImageColumns._ID, ImageColumns.MINI_THUMB_MAGIC };
                Cursor c = mCr.query(mUri, projection, null, null, null);
                try {
                    c.moveToPosition(0);
                } finally {
                    c.close();
                }
                ContentValues values = new ContentValues();
                values.put(ImageColumns.MINI_THUMB_MAGIC, 0);
                mCr.update(mUri, values, null, null);
                OutputStream outputStream = null;
                try {
                    outputStream = mCr.openOutputStream(mUri);
                    if (outputStream != null) {
                        outputStream.write(mJpegData);
                    }
                } catch (IOException ex) {
                    // TODO: report error to caller
                    Log.e(TAG, "Cannot open file: " + mUri, ex);
                } finally {
                    Util.closeSilently(outputStream);
                }
                complete = true;
                return null;
            } finally {
                if (!complete) {
                    try {
                        Log.d(TAG, "-------------execute()--------mCr.delete()...");      //zhang execute delete
                        mCr.delete(mUri, null, null);
                    } catch (Throwable t) {
                        // ignore it while clean up.
                    }
                }
            }
        }
    }



LocalDataSource.java:删除

public boolean performOperation(int operation, ArrayList<MediaBucket> mediaBuckets, Object data) {
    	Log.d(TAG, "performOperation");	
        int numBuckets = mediaBuckets.size();
        ContentResolver cr = mContext.getContentResolver();
        switch (operation) {
        case MediaFeed.OPERATION_DELETE:
            for (int i = 0; i < numBuckets; ++i) {
                MediaBucket bucket = mediaBuckets.get(i);
                MediaSet set = bucket.mediaSet;
                ArrayList<MediaItem> items = bucket.mediaItems;
                if (set != null && items == null) {
                    // TODO bulk delete
                    // remove the entire bucket
                    final Uri uriImages = Images.Media.EXTERNAL_CONTENT_URI;
                    final Uri uriVideos = Video.Media.EXTERNAL_CONTENT_URI;
                    final String whereImages = Images.ImageColumns.BUCKET_ID + "=" + Long.toString(set.mId);
                    final String whereVideos = Video.VideoColumns.BUCKET_ID + "=" + Long.toString(set.mId);
                    Log.d(TAG, "-------not excecute^^^^^^^^^^^^performOperation : switch (operation) : case: MediaFeed.OPERATION_DELETE");
                    Log.d(TAG, "-------not excecute---cr.delete(uriImages, whereImages, null)");
                    cr.delete(uriImages, whereImages, null);
                    cr.delete(uriVideos, whereVideos, null);
                    //CacheService.markDirty();
                }
                if (set != null && items != null) {
                    // We need to remove these items from the set.
                    int numItems = items.size();
                    try {
                        for (int j = 0; j < numItems; ++j) {
                            MediaItem item = items.get(j);
                            cr.delete(Uri.parse(item.mContentUri), null, null);//zhanglb这句注掉后就不能删除sd卡中的文件了,而且重新打开Gallery,文件又回来了
                            Log.d(TAG, "execute here when delete the image=======cr.delete(Uri.parse(item.mContentUri), null, null)");
                        }
                    } catch (Exception e) {
                        // If the database operation failed for any reason.
                        ;
                    }
                    set.updateNumExpectedItems();
                    set.generateTitle(true);
                    //CacheService.markDirty(set.mId);
                }
            }
            break;
        case MediaFeed.OPERATION_ROTATE:
            for (int i = 0; i < numBuckets; ++i) {
                MediaBucket bucket = mediaBuckets.get(i);
                ArrayList<MediaItem> items = bucket.mediaItems;
                if (items == null) {
                    continue;
                }
                float angleToRotate = ((Float) data).floatValue();
                if (angleToRotate == 0) {
                    return true;
                }
                int numItems = items.size();
                for (int j = 0; j < numItems; ++j) {
                    rotateItem(items.get(j), angleToRotate);
                }
            }
            break;
        }
        return true;
    }


我尝试过把它安装到模拟器上,成功了,命令如下:
$ adb remount
#$ adb push <dir>/SinaNews/bin/SinaNews.apk /system/app/ //系统应用

但是连上真机就不行了,虽然终端提示安装成功但是设备上根本没有改变,重启机器也不行。

后来我尝试先把真机上那个Gallery卸掉,但是用“sudo adb uninstall + 包名”的时候根本就卸不掉,提示adb: not found。
分享到:
评论

相关推荐

    gallery3D简单例子实现

    gallery3D的简单例子实现:代码文件包括 -----Gallery3DActivity -----GalleryFlow -----ImageAdapter

    滤镜环状平铺(Filter Factory Gallery D)

    滤镜环状平铺(Filter Factory Gallery D)是一款在图像处理领域中常见的特效滤镜工具。这个工具集合了多种独特的滤镜效果,旨在为用户提供丰富多彩的图像创作可能性。Filter Factory是一家历史悠久的软件公司,以其...

    Gallery使用方法

    ### Gallery使用方法详解 #### 一、Gallery简介 Gallery 是 Android 开发中一个非常实用的控件,主要用于展示一系列图片,常用于相册或者产品图片的展示等场景。Gallery 默认会让当前图片居中显示,而当用户需要...

    安卓Gallery介绍

    `android:gravity="center_vertical"`确保了`Gallery`中的项目居中显示,而`android:spacing="3dp"`则指定了每个项目之间的间距。 ##### 2.2 自定义适配器 为了向`Gallery`提供数据,我们需要创建一个自定义的...

    菜单UI系统源码UMenu Gallery

    unity 菜单UI系统源码UMenu Gallery UMenu Gallery is a functional design Menu interface with a gallery effect, the UI design is highly customizable and pretty easy to use, You can edit it "on the fly" ...

    gallery简单实现 图片调整

    int[] ids1 { R drawable b R drawable c R drawable d R drawable f R drawable g }; @Override protected void onCreate Bundle savedInstanceState { super onCreate savedInstanceState ; ...

    Android实现CoverFlow效果控件的实例代码

    Android实现CoverFlow效果控件的实例代码需要自定义多个控件,包括ImageAdapter、GalleryFlow控件、BitmapScaleDownUtil和Gallery3DActivity。通过对这些控件的正确使用,可以实现CoverFlow效果控件,提高用户体验。...

    Android-这是一个简单的Gallery视图演示项目

    在项目“dibakarece-OwnGalleryView-759416d”中,你可以找到一个实际的实现,包括项目的结构、资源文件以及对应的Java代码。这个项目可以帮助你理解如何结合XML布局和自定义Adapter来创建一个可滚动的图片展示应用...

    gallery:用于在nextcloud上管理照片的Gallery Web应用程序

    画廊Gallery Web应用程序,用于在Nextcloud中管理媒体D B Docker的示例: docker run \ --name gallery_db \ --restart=always \ -p 5555:5432 \ -v gallery_db:/var/lib/postgresql/data \ -e POSTGRES_DB=gallery ...

    unity 打开android或者ios 手机相册

    3. **调用API**:在Unity的C#脚本中,调用插件提供的API,如打开相册、保存图片或视频等。 4. **处理回调**:当用户在相册中选择完文件后,插件会通过Unity的回调机制将选中的文件路径或数据返回给Unity。 5. **...

    IPB v2.3.6 Retail + IP.Blog + IP.Gallery + IP.Downloads

    It'd be easy to gratuitously add feature after feature and push out a new version, but that would be doing a disservice to the thousands of communities that use our software. Instead, we only select ...

    Android组件ConverFlow(继承Gallery)

    public class GalleryFlow extends Gallery { /** * Graphics Camera used for transforming the matrix of ImageViews */ private Camera mCamera = new Camera(); /** * The maximum angle the Child ...

    具有拖曳功能的Gallery

    Log.d("StartActivity", "packageName = " + packageName + "\tclassName = " + className); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent....

    darrell-photo-gallery:一个基于 react hoos 开发的 仿石墨的 图片放大插件

    darrell-photo-gallery 因为最近工作需要预览制作一个图片预览的插件,在查看了...npm install darrell-photo-gallery -D // 在项目中使用 import PhotoGallery from 'darrell-photo-gallery'; import 'darrell-photo-

    啊D注入点关键字

    - `inurl:gallery.php?id=`:相册页面。 **这些关键字专门针对具有特定功能的模块**,如新闻详情页、游戏页面等,这些页面往往因为复杂的功能而更容易出现漏洞。 ##### 7. **其他特定场景** - `inurl:review....

    Ddesign使用教程PPT学习教案.pptx

    4. **Browse The Gallery**:从123D网站的公共画廊中选取文件。 5. **Open an Example**:打开预设的示例文件。 四、建模操作 1. **Insert**子菜单:与主菜单相同,用于插入模型资源。 2. **Save**子菜单:包括...

    GalleryView:GalleryView项目是最近不推荐使用的Gallery小部件的替代方案

    图库浏览 GalleryView是一个开源Android项目,它是基于Android Gallery Widget(现已弃用)的想法而构建的。 基于单个活动GalleryViewActivity的画廊视图。 您只需要向其传递可绘制列表或文件路径列表即可。 它渲染...

    Html5 3D转图

    在“html5-3d-images-gallery”这个项目中,很可能是一个使用WebGL实现的3D图片画廊。用户可以以3D方式浏览图片,通过拖动、旋转视角来查看不同角度的图像。这样的实现可能包括以下步骤: 1. 加载3D模型(可能是...

    Ddesign使用教程学习教案.pptx

    在**Open**和**Insert**菜单下,还有多个子菜单,如**Open Recent**(打开最近使用的文件)、**My Projects**(打开云端项目)、**Browse My Computer**(浏览本地文件)、**Browse The Gallery**(查看123D网站上的...

Global site tag (gtag.js) - Google Analytics