首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android Listview和Horizontalview -如果图片被点击,不知道如何获取图片文件名

Android ListView和HorizontalView是Android开发中常用的两种视图组件,用于展示列表和水平滑动的内容。当图片被点击时,可以通过以下步骤获取图片文件名:

  1. 首先,在ListView或HorizontalView的适配器中,为每个图片设置一个点击事件监听器。
  2. 在点击事件监听器中,获取被点击的图片对象。
  3. 通过图片对象的路径或URI,获取图片文件的绝对路径。
  4. 从图片文件的绝对路径中提取文件名。

以下是一个示例代码:

代码语言:txt
复制
// ListView或HorizontalView的适配器中的点击事件监听器
imageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 获取被点击的图片对象
        ImageView clickedImage = (ImageView) v;
        
        // 获取图片对象的路径或URI
        Drawable drawable = clickedImage.getDrawable();
        if (drawable instanceof BitmapDrawable) {
            BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
            Bitmap bitmap = bitmapDrawable.getBitmap();
            
            // 获取图片文件的绝对路径
            String imagePath = MediaStore.Images.Media.insertImage(
                    getContentResolver(), bitmap, "Title", null);
            
            // 从图片文件的绝对路径中提取文件名
            String fileName = imagePath.substring(imagePath.lastIndexOf("/") + 1);
            
            // 使用文件名进行后续操作
            // ...
        }
    }
});

在上述代码中,通过点击事件监听器获取被点击的图片对象,然后通过Drawable对象的类型判断是否为BitmapDrawable,进而获取Bitmap对象。接着,使用MediaStore.Images.Media.insertImage()方法将Bitmap对象保存为图片文件,并返回图片文件的绝对路径。最后,通过字符串处理方法获取文件名。

请注意,以上代码仅为示例,实际应用中可能需要根据具体情况进行适当的修改和优化。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):提供高可靠、低成本的云端存储服务,适用于存储和处理图片等多媒体文件。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云云服务器(CVM):提供弹性计算能力,可用于搭建和运行各类应用程序。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等。详情请参考:https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):提供全面的物联网解决方案,帮助连接和管理物联网设备。详情请参考:https://cloud.tencent.com/product/iot
  • 腾讯云移动开发(Mobile):提供移动应用开发和运营的一站式解决方案,包括移动后端云服务、移动测试等。详情请参考:https://cloud.tencent.com/product/mobile
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 反编译apk 详解

jd-gui(google code)最新版请见官方 工具介绍: apktool   作用:资源文件获取,可以提取出图片文件布局文件进行使用查看 dex2jar      作用:将apk反编译成java...说明获取成功,之后发现在文件夹下多了个test文件,点击便可以查看该应用的所有资源文件了。...混淆过的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名): ?...然而,如果该APK进行了混淆处理,那么你看到的类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名,所以你可以想找到你所想得知的界面代码可能会十分费劲,找到了代码可能看起来也会很费劲,可是一个大体的思路会获得...本人曾经想写一个类似唱吧的名人界面布局,可是当初第一次接触不知道如何去写,进进行了反编译,即使他的那个代码是混淆过的,我也看出来他是通过LISTVIEW的TYPE设定不同的ITEM布局实现了。

1.8K40

Android APK反编译就这么简单 详解(附图)

)最新版请见官方 工具介绍: apktool        作用:资源文件获取,可以提取出图片文件布局文件进行使用查看 dex2jar      作用:将apk反编译成Java源码(classes.dex...说明获取成功,之后发现在文件夹下多了个test文件,点击便可以查看该应用的所有资源文件了。...混淆过的效果图(类文件名称以及里面的方法名称都会以a,b,c….之类的样式命名): ?...然而,如果该APK进行了混淆处理,那么你看到的类文件名称以及里面的方法名称都会以a,b,c….之类的样式命名,所以你可以想找到你所想得知的界面代码可能会十分费劲,找到了代码可能看起来也会很费劲,可是一个大体的思路会获得...本人曾经想写一个类似唱吧的名人界面布局,可是当初第一次接触不知道如何去写,进进行了反编译,即使他的那个代码是混淆过的,我也看出来他是通过LISTVIEW的TYPE设定不同的ITEM布局实现了。

2.8K10
  • Android开发之ListView使用经验分享

    如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000...之间的分割线 android:divider="@drawable/list_driver",其中 @drawable/list_driver 是一个图片资源,如果不想显示分割线,只要设置为android...四、如何获取ListView中单击某个item后的信息,onItemClick函数如下: public void onItemClick(AdapterView<?...(footerParent); footer.setVisibility(View.GONE); 3、如何设置headfooter不可点击 public void addHeaderView (View...android:listSelector="#00000000" 2、替换listview 默认的点击选中时的颜色 设置listivew的listSelector属性就可以了,如果要求点击变色,松开以后恢复

    1.4K60

    Android中轴旋转特效实现,制作别样的图片浏览器

    Android如果想要实现3D效果一般有两种选择,一是使用Open GL ES,二是使用Camera。...首先在onCreate()方法中调用了initPics()方法,在这里对图片列表中的数据进行初始化。然后获取布局中控件的实例,并让列表中的数据在ListView中显示。...接着分别给ListViewImageView注册了它们的点击事件。...当点击ListView中的某一子项时,会首先将ImageView中的图片设置为点击那一项对应的资源,然后计算出整个布局的中心点位置,用于当作中轴旋转的中心点。...在图片名称列表界面点击某一项后,会中轴旋转到相应的图片,然后点击图片,又会中轴旋转回到图片名称列表界面,如下图所示: ? 效果非常炫丽吧!

    1.4K60

    Android实现中轴旋转特效 Android制作别样的图片浏览器

    Android如果想要实现3D效果一般有两种选择,一是使用Open GL ES,二是使用Camera。...首先在onCreate()方法中调用了initPics()方法,在这里对图片列表中的数据进行初始化。然后获取布局中控件的实例,并让列表中的数据在ListView中显示。...接着分别给ListViewImageView注册了它们的点击事件。...当点击ListView中的某一子项时,会首先将ImageView中的图片设置为点击那一项对应的资源,然后计算出整个布局的中心点位置,用于当作中轴旋转的中心点。...在图片名称列表界面点击某一项后,会中轴旋转到相应的图片,然后点击图片,又会中轴旋转回到图片名称列表界面,如下图所示: image.png 效果非常炫丽吧!

    1.3K10

    Android插件化浅析

    一个Android应用在开发到了一定阶段以后,功能模块将会越来越多,APK安装包也越来越大。此时可能就需要考虑如何分拆整个应用了。...先上项目效果图: 项目描述:该Demo很简单,就是点击“切换背景”的按钮之后,会弹出一个PopupWindow,里面是一个listview,这个listview里面item显示是插件的名字,点击相应插件的名字...,背景图片就会更改为插件中图片。...,然后进行判断是否是我们主应用的插件,如果是的话,就将其应用程序名字包名存入一个map集合中,然后添加到我创建的pluginList中,值得强调的一点是,如何确定是我们应用的插件呢?...设置点击事件了,点击之后会进行主程序背景图片的切换,逻辑如下 @Override public void onItemClick(AdapterView<?

    57220

    Android数据绑定技术二,企业级开发

    这篇主要是内容是 数据绑定加载网络图片 数据绑定ListView   自定义适配器(数据绑定通用适配器) item中某一个控件点击事件并刷新定位 先说一下数据绑定加载网络图片本地图片图片的载体我们都知道用...好,到这里,加载网络图片就已经做好了,下面我们实现一个数据绑定listview,还是老样子,搞清楚几个步骤 创建自定义Adapter(通用) 并且获取上面的某一个控件的点击事件,刷新定位 如何把通用适配器...listview关联,并且数据也能加载。...(字)图片:0等才有反应,点击北京image是没有反应的。  ...4:item中某一个控件点击事件并刷新  1:我们在使用普通的listview处理方法的时候,点击item中某一个控件,写的逻辑很多,还要通过接口等刷新,而且如果处理不好的话刷新后一般还会跳到第一条数据

    77790

    android app反编译_安卓反编译教程

    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的...测试环境: win 7 使用工具: CSDN上下载地址: apktool (资源文件获取) 下载 dex2jar(源码文件获取) 下载 jd-gui (源码查看) 下载 Android...,可以提取出图片文件布局文件进行使用查看 dex2jar 作用:将apk反编译成java源码(classes.dex转化成jar文件) jd-gui 作用:查看APK中classes.dex转化成出的...然而,如果该APK进行了混淆处理,那么你看到的类文件名称以及里面的方法名称都会以a,b,c….之类的样式命名,所以你可以想找到你所想得知的界面代码可能会十分费劲,找到了代码可能看起来也会很费劲,可是一个大体的思路会获得...本人曾经想写一个类似唱吧的名人界面布局,可是当初第一次接触不知道如何去写,进进行了反编译,即使他的那个代码是混淆过的,我也看出来他是通过LISTVIEW的TYPE设定不同的ITEM布局实现了。

    2.6K20

    Android ListView实现图文列表显示

    ListView如果内容过多,可以滑动屏幕来显示,并且点击某一行可使用吐司方法弹出对应的水果名字。 1.新建项目,新建entity实体类包,包中建存储每行水果信息的Fruit类。...,即getView方法没有调用过,需要创建 resourceId, null); // 得到子布局,非固定的,子布局id有关 viewHolder.ivImage = (ImageView...adapterView, View view, int position, long id) { Fruit fruit=fruitList.get(position); //获取点击的那一行...7.注意FruitAdaopter.java类中的getView方法在每个子项滚动到屏幕内的时候都会被调用,每次都将布局重新加载一边,所以为了提高效率可以进行判断,如果程序运行过一次就将布局保存在参数...8.同样,getView中的获取控件id如果每次运行都要执行,会降低效率,所以也需要定义ViewHolder类存储获取的控件信息,当第一次运行时执行findViewById()后,将所有的控件信息保存到实例的

    2K20

    2021Android 面试宝典:实战记录+回答技巧,让每个知识知其所以然!(持续更新中)

    Android 中布局的优化措施都有哪些? android:layout_gravity android:gravity 的区别? ListView ListView 如何提高其效率?...ListView 如何定位到指定位置 如何在 ScrollView 中如何嵌入 ListView ListView如何优化图片 ListView图片错位的问题是如何产生的 scrollView...动态加载机制 如果加载高清大图片,不用第三方,不压缩,怎么处理防止 OOM Android 屏幕适配 屏幕适配方式都有哪些 屏幕适配的处理技巧都有哪些 dp px 之间的关系 AIDL 什么是 AIDL...最后想要获取上面完整的《2020 Android BAT面试宝典》,点击即可领取。...面试大厂复习路线 多余的话就不讲了,接下来将分享面试的一个复习路线,如果你也在准备面试但是不知道怎么高效复习,可以参考一下我的复习路线,有任何问题也欢迎一起互相交流,加油吧!

    1.6K20

    数据的异步加载图片保存

    把从网络获取图片数据保存在SD卡上, 先把权限都加上 网络权限 android.permission.INTERNET SD卡读写权限 android.permission.MOUNT_UNMOUNT_FILESYSTEMS...android.permission.WRITE_EXTERNAL_STORAGE 总体布局 写界面,使用ListView,创建条目的布局文件,水平摆放的ImageView TextView 在activity...中获取ListView对象,调用setAdapter()方法,设置一个适配器 新建一个包 Adapter,新建一个适配器ContactsAdapter继承系统的BaseAdapter 新建一个domain...对象不为null,就调用缓存对象的getTag()方法,得到包装对象,得到控件对象 调用TextView对象的setText()展示文本 展示图片这个地方,很耗时间,如果直接加载容易anr,所以要异步加载图片...通过new FIle(),参数:缓存目录对象,图片文件名图片文件名称是通过md5()保存的,获取文件后缀,从最后一个点开始截取,path.substring(path.lastIndexOf(“.

    1.1K20

    Android最常用的控件ListView(详解)

    2.点击事件响应 Parent: 指定哪个AdapterView(可能会有多个ListView,区分多个ListView) View: 为你点击Listview的某一项的内容,来源于adapter...Position: 指的是adapter的某一项的位置,如点击listview第2项,而第2项对应 的是adapter的第2个数值,那此时position的值就为1了。...Id:id的值为点击Listview的哪一项对应的数值,点击listview第2项,那id就等于1。一般position相同。...的点击事件 ListView的滚动毕竟只是满足 了我们视觉上的效果,下面我们来学习ListView如何才能响 应用户的点击事件。...代码: //第六步:listview点击事件 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    2.4K10

    基于Android开发的天气预报app(源码下载)「建议收藏」

    ,帮助大家下载源码并打开运行 如果觉得对你有帮助,麻烦帮忙点个赞,谢谢!...2、获取天气信息 获取天气信息的网络操作是获取城市信息的操作是一样的,使用上面那个网络异步函数即可,如果觉得不好,也可以使用网络开源项目包装的网络访问接口,比如说OKHttp。...#城市天气信息显示模块 3、天气信息的显示 这里相对麻烦一点,因为天气信息的显示中我们做了比较多的功能 获取背景图片图片的更新 这里我使用的是必应主页提供的背景图片作为天气信息显示的背景图片http...Glide 是 Google 员工的开源项目, Google I/O 上推荐使用Glide具有获取、解码展示视频剧照、图片、动画等功能,它还有灵活的API,这些API使开发者能够将Glide应用在几乎任何网络协议栈里...创建Glide的主要目的有两个,一个是实现平滑的图片列表滚动效果,另一个是支持远程图片获取、大小调整展示。

    2.8K10

    Android开发的那些坑小技巧

    要命的是不知如何try,老是crash。后来才知道是android遗留下来的bug,源码里没对pointer index做检查。改源码重新编译不太可能吧。...在android里面,点击屏幕之后,点击事件会根据你的布局来进行分配的,当你的listView里面增加了button之后,点击事件第一优先分配给你listView里面的button。...基本信息公司简介比较简单,荣誉需要用到RecyclerViewTextView的组合,RecyclerView(当然,用GridView也可以,3列多行的显示)存放荣誉图片,TextView显示荣誉名称...需要解决ListView放到ScrollView中的滑动问题RecyclerView的显示问题(如果RecyclerView的高度没法计算,你是看不到内容的)。...,由于是3列显示的方式,只需要计算需要显示几行,然后给定行间距图片的高度,再设置setLayoutParams就行了。

    1.1K30

    Android Studio如何实现音乐播放器(简单易上手)

    图片一定要剪成圆形,椭圆会影响运行效果,导致闪退,如果不太清楚图片如何剪成圆形,可以看这篇博客:如何图片剪成圆形,也非常简单。...最下面的剩余空间全部给了Fragment,它的id是content,这里不知道Fragment没关系,反正就晓得它TextView一样可以显示内容就行。...view.findViewById(R.id.item_name); ImageView iv=view.findViewById(R.id.iv); //设置控件显示的内容,就是获取的歌曲名歌手图片...对应的封面圆形图片、背景图片专辑图片都复制粘贴到drawable中,这里博主只选择了三首歌曲三张封面圆形图片,歌曲数量由大家自己设置,没有限制。...点击播放音乐按钮,音乐开始播放,进度条开始滑动,图片开始旋转: (5)点击暂停播放按钮,音乐停止播放,而且进度条停止滑动,图片也停止旋转: (6)点击继续播放按钮,音乐继续播放,歌手图片也继续旋转

    7.2K22

    Android ListView异步加载图片乱序问题,原因分析及解决方案

    比如说在ListView中加载图片如果是同步加载图片倒还好,但是一旦使用异步加载图片那么问题就来了,这个问题我相信很多Android开发者都曾经遇到过,就是异步加载图片会出现错位乱序的情况。...根据ListView的工作原理,移出屏幕的控件将会很快被新进入屏幕的元素重新利用起来,而如果在这个时候刚好前面发起的图片请求有了响应,就会将刚才位置上的图片显示到当前位置上,因为虽然它们位置不同,但都是共用的同一个...然后在第31行我们看到,这里从ImageContainer对象中获取封装的图片请求地址,并拿来当前的请求地址做对比,如果相同的话说明这是一条重复的请求,就直接return掉,如果不同的话就调用cancelRequest...那么解决图片乱序最核心的逻辑就在这里了,其实NetworkImageView的解决思路还是比较简单的,就是如果这个控件已经移出了屏幕且重新利用了,那么就把之前的请求取消掉,仅此而已。...下一篇文章仍然是ListView主题,我们将学习一下如何ListView控件进行一些功能扩展,感兴趣的朋友请继续阅读 Android ListView功能扩展,实现高性能的瀑布流布局 。

    1.7K100
    领券