1. 程式人生 > >安卓 imageview資源圖片ID獲取方法

安卓 imageview資源圖片ID獲取方法

I think if I understand correctly this is what you are doing.

ImageView view = (ImageView) findViewById(R.id.someImage);
view.setOnClickListener(new OnClickListener() {
  public void onClick(View view) {
   ImageView imageView = (ImageView) view;
   assert(R.id.someImage == imageView.getId());
   switch(getDrawableId(imageView)) {
    case R.drawable.foo:
     imageView.setDrawableResource(R.drawable.bar);
     break;
    case R.drawable.bar:
    default:
     imageView.setDrawableResource(R.drawable.foo);

     break;
  }
});

Right? So that function getDrawableId() doesn't exist. You can't get a the id that a drawable was instantiated from because the id is just a reference to the location of data on the device on how to construct a drawable. Once the drawable is constructed it doesn't have a way to get back the resourceId that was used to create it. But you could make it work something like this:

ImageView view = (ImageView) findViewById(R.id.someImage);
view.setOnClickListener(new OnClickListener() {
  public void onClick(View view) {
   ImageView imageView = (ImageView) view;
   assert(R.id.someImage == imageView.getId());
   Integer integer = (Integer) imageView.getTag();
   integer = integer == null ? 0 : integer;
   switch(integer) {
    case R.drawable.foo:
     imageView.setDrawableResource(R.drawable.bar);
     imageView.setTag(R.drawable.bar);
     break;
    case R.drawable.bar:
    default:
     imageView.setDrawableResource(R.drawable.foo);
     imageView.setTag(R.drawable.foo);
     break;
  }
});

相關推薦

imageview資源圖片ID獲取方法

I think if I understand correctly this is what you are doing. ImageView view = (ImageView) findViewById(R.id.someImage); view.setOnClickListener(new OnCl

中根據圖片檔名獲取圖片資源ID

方法一: /** * 獲取圖片名稱獲取圖片的資源id的方法 * @param imageName * @return */ public int getResource(String imageName) {

微信內網頁點選圖片放大與IOS點選失效處理方法

 // 遞迴搜尋當前元素所有父級,看是否包含有a標籤且有href值const searchIsHavaTagA = function (currentEle) {    // 如果一直往上層找,到body還沒找到就說明沒有了    if (currentEle.nodeName === 'BODY') {  

優化應用內存的神奇方法以及背後的原理,一般人我不告訴他

hvr 通知 lib easy rgb ger eset canvas 統計 安卓應用一般都害怕自己被殺。內存占用高是被殺的重要原因之中的一個。所以大家都想盡各種招數應對,但效果都一般。 但有一招: WindowManagerGlobal.getInstance(

手機照片誤刪恢復方法步驟

照片誤刪恢復 針對一系列的數據恢復問題,小編在這裏了解一個有效的方法來解決手機裏的照片刪了恢復問題?這應該是大家都想知道的,不管大家是使用蘋果手機還是安卓手機,面對數據丟失的問題,這都是比較麻煩的。那麽手機裏的照片刪了怎麽恢復?我們就一起來了解安卓手機的誤刪恢復吧! 互盾照片恢

4.2用adb 獲取屏幕分辨率等信息

sys 分辨 win 信息 打印 nbsp dump 安卓 shell 在終端輸入adb shell dumpsys: 終端會打印出一些service list 用adb shell dumpsys+service名即可查詢相應的信息。 屏幕分辨率用adb shell du

開發中傳送簡訊的方法 APP內單發簡訊 群發簡訊 APP跳轉到簡訊頁 單條簡訊 多條簡訊Intent跳轉

1.APP內部直接傳送短息 包括髮送單條簡訊 傳送多條簡訊 APP內部發送簡訊首先要獲取一個傳送簡訊的許可權 <uses-permission android:name="android.permission.SEND_SMS"/> 安卓6.0以上的手機要動態獲取到這個許可

專案實戰之關於獲取SD卡指定路徑和檔案的講解

前言 當我們將手機連線到電腦上時,我們發現在SD卡的根目錄下生成了成百上千的由各種應用程式建立的資料夾,導致我們也不知道哪個資料夾是用來幹嘛的,這正因為這樣安卓開發人員經常受到使用者的吐槽。 的確作為一個安卓開發者,我們的確不應該將我們應用的資料直接存到SD卡的根目錄下,這樣當手機安

新增背景圖片時解決圖片拉伸問題

問題描述: 當我們在android layout佈局檔案設定背景圖片只需要加上 android:background="@drawable/ic_bg"  就可以了設定ic_bg為背景的圖片了 然而這樣設定後當圖片較小時會發現 圖片被拉伸了,失真。     解決方法

6.0之後——動態獲取許可權封裝

轉載請註明出處    https://blog.csdn.net/lebang08/article/details/52751088 今天將專案中需要授權的地方,增加了判斷 -----------關於6.0許可權的封裝。 大家知道,在android6.0之後,谷歌為了更

手機PDF轉word的方法,超級簡單實用~

現在無論是日常工作還是生活中,Word文件、Excel文件、PPT文件都是我們會經常遇見的,當遇到兩種格式需要相互轉換的時候,該怎麼辦呢?今天小編就和大家介紹一下最常見的PDF轉換成word方法,剩下的轉換也可以仿照下面的步驟來實現。 轉換步驟: 1、首先將PD

【GT-應用開發之Glide獲取視訊縮圖】

前言:期待已久的週末終於到來了,雖然明天還需要上班,但是今天卻不像平日裡迫切的趕回家。飯後,閒來無事結合最近的一個專案需求,編寫一個小demo,主要是實現視訊檔案縮圖的獲取。         我的思路是,首先獲取所有的視訊檔案列表,然後依次獲取縮圖並展示。但是出於時間因素,

[開發基礎]捕獲崩潰日誌方法

CrashHandler.java package com.landicorp.android.factorytest; import java.io.File; import java.io.FileOutputStream; import java.io.PrintWriter; imp

開發5——利用ContentProvider獲取手機聯絡人

目錄 一、實驗內容 二、作業過程和結果 三、完整程式碼 一、實驗內容 使用ContentProvider獲取手機聯絡人。 二、作業過程和結果 1、首先在模擬器中新增幾個聯絡人,作為本專案的獲取目標。         &nbs

imageview實現上面兩個圓角下面兩個直角的效果

由於產品奇葩要求要求實現下面效果,奇葩的地方就在,要求圖片上面兩個是圓角,下面兩個是直接。自己研究了半天找出來了下面兩種解決方案一,用自定義imageviewimport android.content.Context; import android.graphics.Ca

手機微信資料匯出方法 -- adb備份(無需root)

此方法用於安卓4.0以上系統,無需root(僅用於安卓微信版本為6.0以下的匯出,6.0以上版本無法使用此方法匯出)  1. 下載ADB軟體包合集,裡面有需要的所有工具(點選下載)。  2. 用資料線連線上手機和電腦,開啟手機的DEBUG模式(不瞭解請百度下,很簡單)

上傳圖片到阿里雲

//--------------------------阿里雲相關--Start------------------------------- private OSSService ossService; private String BucketName="collect-app"; private OSS

一行程式碼搞定6.0動態許可權獲取(請求許可權庫)

安卓6.0的動態許可權申請困擾了很多開發者,谷歌提供的官方申請方式過於繁複,程式碼量很大,也不夠優雅。於是,我寫了一個動態請求許可權庫,用來方便的獲取許可權以及進行一些處理。 依賴庫 使用這個庫需要minSdkVersion>11,build.gr

iOS 實現類似.9.png圖片拉伸效果

// >= ios 5.0 UIImage *image = [[UIImage imageNamed:@"bg_box"] resizableImageWithCapInsets:UIEdgeInsetsMake(0,10,0,10)]; // < io

6.0以上動態獲取寫入和讀取許可權

//讀寫許可權 private static String[] PERMISSIONS_STORAGE = { android.Manifest.permission.READ_EXTERNAL_STORAGE, android.Manifes