求高手指点如何获取view的背景图片的id 假如我对一个view进行了view.setBackgroundResource(R.draw.ic);现在我想获取我对这个view设置的R.draw.ic的id(int),怎么操作? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String resTypeName = getResources().getResourceTypeName(R.id.控件);String resEntryName = getResources().getResourceEntryName(R.id.控件);Context apk = createPackageContext(packageName, Context.CONTEXT_IGNORE_SECURITY);int drawavleId = apk.getResources().getIdentifier(resEntryName, resTypeName, apk.getPackageName()); 为什么要获得这个id啊,其他地方需要这张图片时,直接用R.draw.ic去调用不就得了 因为我的view是动态生成的 在几个图片中随机选了一个图片背景R.drawable.**是什么其实我也不知道 所以我想知道 才能进行之后的事情 表示没有看懂 这是我的代码:package com.example.popstar;import java.util.Random;import android.os.Bundle;import android.view.View;import android.widget.TableLayout;import android.widget.TableRow;import android.widget.TextView;import android.app.Activity;public class MainActivity extends Activity { private TableLayout tableLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tableLayout = (TableLayout) findViewById(R.id.tablelayout); for (int row = 0; row < 10; row++) { TableRow tableRow = new TableRow(this); for (int col = 0; col < 10; col++) { TextView textView = this.new_textview(row,col); tableRow.addView(textView); } tableLayout.addView(tableRow); } } // 新建TextView public TextView new_textview(int row,int col) { TextView textView = new TextView(this); textView.setId(row*10+col+1); textView.setTextAppearance(this, R.style.textview); textView.setLayoutParams(new TableRow.LayoutParams(45, 45)); int random = getRandom(5); if (random == 0) { textView.setBackgroundResource(R.drawable.red); } else if (random == 1) { textView.setBackgroundResource(R.drawable.blue); } else if (random == 2) { textView.setBackgroundResource(R.drawable.green); } else if (random == 3) { textView.setBackgroundResource(R.drawable.zi); } else if (random == 4) { textView.setBackgroundResource(R.drawable.yellow); } textViewOnClick(textView); return textView; } // 产生一个随机数 public static int getRandom(int max) { return new Random().nextInt(max); } // textView鼠标单击事件 public void textViewOnClick(TextView textView) { textView.setOnClickListener(new TextView.OnClickListener(){ public void onClick(View v){ // 我想在这里获得我点击的view给他设置的背景图片 } }); } } private int drawable_id;if (random == 0) { drawable_id = R.drawable.red;} else if (random == 1) { drawable_id = R.drawable.blue;} else if (random == 2) { drawable_id = R.drawable.green;} else if (random == 3) { drawable_id = R.drawable.zi;} else if (random == 4) { drawable_id = R.drawable.yellow;}textView.setBackgroundResource(drawable_id); // textView鼠标单击事件 public void textViewOnClick(TextView textView) { textView.setOnClickListener(new TextView.OnClickListener() { public void onClick(View v) { // view的背景就是drawable_id了。 } }); }这样就可以了。 这不是我想要的结果设全局变量只能获取的是最后一个view的图片id看来我这个情况只能在动态生成后把100个view存放在一个文件里面并设置id和图片背景图片信息需要时根据id去取背景图片信息不知道我的这个想法对不对 程序通过mmm编译后,重新签名不能安装,如何解决 Android 系统横竖屏(屏幕旋转)代码如何实现? android自定义快捷方式 listview显示之前如何显示dialog 怎么样可以固定我的Linearlayout的宽度? 字符串截取问题! 求助,基于android的运输监控系统,希望大家给点设计意见,谢谢 Bitmap对像素操作的小疑惑 羡慕嫉妒恨 Android版的疯狂猜图游戏源码完整版分享 阿雪笑了 android helloword报错 Unhandled event loop exception
String resEntryName = getResources().getResourceEntryName(R.id.控件);
Context apk = createPackageContext(packageName,
Context.CONTEXT_IGNORE_SECURITY);
int drawavleId = apk.getResources().getIdentifier(resEntryName, resTypeName,
apk.getPackageName());
因为我的view是动态生成的 在几个图片中随机选了一个图片背景R.drawable.*
*是什么其实我也不知道
所以我想知道 才能进行之后的事情
表示没有看懂
这是我的代码:
package com.example.popstar;import java.util.Random;import android.os.Bundle;
import android.view.View;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.app.Activity;public class MainActivity extends Activity { private TableLayout tableLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tableLayout = (TableLayout) findViewById(R.id.tablelayout);
for (int row = 0; row < 10; row++) {
TableRow tableRow = new TableRow(this);
for (int col = 0; col < 10; col++) {
TextView textView = this.new_textview(row,col);
tableRow.addView(textView);
}
tableLayout.addView(tableRow);
}
} // 新建TextView
public TextView new_textview(int row,int col) {
TextView textView = new TextView(this);
textView.setId(row*10+col+1);
textView.setTextAppearance(this, R.style.textview);
textView.setLayoutParams(new TableRow.LayoutParams(45, 45));
int random = getRandom(5);
if (random == 0) {
textView.setBackgroundResource(R.drawable.red);
} else if (random == 1) {
textView.setBackgroundResource(R.drawable.blue);
} else if (random == 2) {
textView.setBackgroundResource(R.drawable.green);
} else if (random == 3) {
textView.setBackgroundResource(R.drawable.zi);
} else if (random == 4) {
textView.setBackgroundResource(R.drawable.yellow);
}
textViewOnClick(textView);
return textView;
} // 产生一个随机数
public static int getRandom(int max) {
return new Random().nextInt(max);
} // textView鼠标单击事件
public void textViewOnClick(TextView textView) {
textView.setOnClickListener(new TextView.OnClickListener(){
public void onClick(View v){
// 我想在这里获得我点击的view给他设置的背景图片
}
});
}
}
if (random == 0) {
drawable_id = R.drawable.red;
} else if (random == 1) {
drawable_id = R.drawable.blue;
} else if (random == 2) {
drawable_id = R.drawable.green;
} else if (random == 3) {
drawable_id = R.drawable.zi;
} else if (random == 4) {
drawable_id = R.drawable.yellow;
}
textView.setBackgroundResource(drawable_id);
// textView鼠标单击事件
public void textViewOnClick(TextView textView) {
textView.setOnClickListener(new TextView.OnClickListener() {
public void onClick(View v) {
// view的背景就是drawable_id了。
}
});
}
这样就可以了。
这不是我想要的结果
设全局变量只能获取的是最后一个view的图片id
看来我这个情况只能在动态生成后把100个view存放在一个文件里面并设置id和图片背景图片信息需要时根据id去取背景图片信息
不知道我的这个想法对不对