如何获取ImageView属性,例如src

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取ImageView属性,例如src相关的知识,希望对你有一定的参考价值。

现在又个需求是每次按一下一个图片就换另外一张,再按一次就还原,必须要根据这个图片的资源ID或者说根据图片的文件名来判断,如何获取ImageView属性就是说我想获取一个View的某个属性怎么获取?我看有种方法好像是:stylist_detail_like_img = (ImageView) findViewById(R.id.stylist_detail_like_img);stylist_detail_like_img.getResources().getIdentifier(name, defType, defPackage));感觉好像不对有点麻烦

参考技术A 我对楼主的问题不是很明白,要是换ImageView的图片的话,img.setBackGround(R.drawable.abc)即可根据图片名字更换图片,根据img.setImageResource()的话,那么getResource.getDrawable(R.drawable.abc)即可获取资源id,放入img.setImageResource()即可 参考技术B 楼主很专业,写得很好! 参考技术C 你好,"祝福":我哪个帖子是这个意思:我有个类似“赞”这样的按钮,进入首先会判断是不是已经“赞”过,如果赞过就显示赞的图片,如果没有赞就显示默认的图片。没有赞,点击下“赞”,换成已赞的图片,再点击下取消赞,换成默认的图片。所以我想应该是在界面点击的那个图片事件上根据当前图片的src路径来判断当前是什么状态,再更换对应的图片。

UI控件之显示图像控件ImageView(上)

(一)概述
ImageView主要是用来显示图片的控件,可以对图片进行放大、缩小和旋转的功能。
(二)ImageView中src和BackGround属性的区别
这里写图片描述
No.1 ——使用程序测试src与background属性的区别:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/maomi" />
     <ImageView
        android:id="@+id/imageView2"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:src="@drawable/maomi" />

      <ImageView
        android:id="@+id/imageView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/maomi" />


      <ImageView
        android:id="@+id/imageView4"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:background="@drawable/maomi" />

</LinearLayout>

运行效果:
这里写图片描述

这里写图片描述
另外还有一点,我们只是设置了width或者height ,假如同时设置二者的值后,background则继续进行填充,而src的大小则可能发生改变!比如,试着运行下面的代码:
这里写图片描述

这里写图片描述

这就引出了ImageView的一个重要属性—–scaleType图片缩放的问题,这个问题内容比较多,我们放到后面,先解决下面的问题;

(三)解决blackground拉伸导致图片变形的方法
在前面的第4个效图中我们可以看到图片已经被拉伸变形了,正方形变成了长方形,显然这很不美观,有没有解决办法,有!目前有俩中比较常见的方法:
(1)这个适用于动态加载ImageView的代码也简单,只需要在添加View的时候,把大小写死了就ok了;
这里写图片描述
(2)
这里写图片描述
cat.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" >
        android:id="@id/cat_bg"
        android:gravity="top"
        android:src="@drawable/maomi"
        android:titleMode="disabled"
</bitmap>

动态:ibtnCat.setBackGroundResource(R.drawable.cat);
静态:android:backGround=”@drawable/cat”
(3)设置透明度的问题
这里写图片描述

(4)src和background结合的妙用
网上一张图:
这里写图片描述
这里写图片描述

效果图如下:
这里写图片描述

实现代码:

 <ImageView
        android:id="@+id/imageView1"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:src="@drawable/maomi"
        android:background="#CCAADF"/>

这里写图片描述

(5)代码中设置background和src属性
这里写图片描述

(四)adjustViewBounds设置缩放是否保存原图长宽比
这里写图片描述

运行效果图:
这里写图片描述

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.android_drawable_xml.MainActivity" >

    <!-- 正常的图片 -->

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5px"
        android:src="@drawable/maomi" />

    <!-- 限制了最大宽度和高度,并且设置了调整边界来保持所显示图像的长宽比 -->

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5px"
        android:adjustViewBounds="true"
        android:maxHeight="200px"
        android:maxWidth="200px"
        android:src="@drawable/maomi" />

</LinearLayout>

这里写图片描述

(五)scaleType设置图片的填充方式
这里写图片描述置~
这里写图片描述
废话不多说~~~一幅图看懂他们几个:

这里写图片描述
这里写图片描述

是不是瞬间豁然开朗了~~~下面一个一个做实验;

(1)fitEnd , fitStart , firCenter
这里以firEnd为例,其他俩个类类似:
运行效果:
这里写图片描述

实现代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageview"
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="fitEnd"
        android:background="#AAFD00"
        android:src="@drawable/mengchong" />

</LinearLayout>

(2)centerCrop与centerInside
这里写图片描述
运行效果:

这里写图片描述
实现代码:

<ImageView
        android:id="@+id/imageview2"
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="centerCrop"
        android:background="#AAFD00"
        android:src="@drawable/mengchong" />

      <ImageView
        android:id="@+id/imageview3"
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="centerInside"
        android:background="#AAFD00"
        android:src="@drawable/mengchong" />

(3)fitXY
这里写图片描述

运行效果:
这里写图片描述

实现代码:

  <ImageView
        android:id="@+id/imageview4"
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="fitXY"
        android:background="#AAFD00"
        android:src="@drawable/mengchong" />

我选择的图片比较小,所以View中X ,Y没有发生改变,若换乘X,Y比较大的图片则一定会发现图片会变“高瘦”或者“矮胖”;

(4)matrix—-相信接触过ImageView绘图的筒子们,一定很熟悉吧;
这里写图片描述
运行效果图:
这里写图片描述

实现代码:


    <ImageView
        android:id="@+id/imageview"
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="matrix"
        android:background="#AAFD00"
        android:src="@drawable/mengchong" />

(5)center
这里写图片描述
运行效果:

这里写图片描述

实现代码:

 <ImageView
        android:id="@+id/imageview"
        android:layout_width="100px"
        android:layout_height="100px"
        android:layout_margin="5px"
        android:scaleType="center"
        android:background="#AAFD00"
        android:src="@drawable/meizi" />

完毕~~比较基础的一些内容,下篇我们进入实战应用!

以上是关于如何获取ImageView属性,例如src的主要内容,如果未能解决你的问题,请参考以下文章

如何动态的设定imageview的大小

php 如何取img属性值 src

仅对 ImageView 的“src”alpha 属性而不是整个视图进行动画处理

在 imageview 中缩放图像

如何获取Drawable的资源ID

如何获取img标签的src属性值