晚上,
我遇到了这个非常有用的帖子,除了尺寸以外,我看起来一切都很好...... 发布:how to add icon in alert dialog before each item?
有关于setBounds的评论,然后调用另一个setCompoundDrawables。
这就是我所拥有的
...
switch(currently_selected){
...
case 3:
final Item[] items2 = {
new Item("Company 1", R.drawable.c_1),
new Item("Company 2", R.drawable.c_2),
new Item("Company 3", R.drawable.c_3),
new Item("Company 4", R.drawable.c_4),
new Item("Company 5", R.drawable.c_5)//no icon for this one
};
ListAdapter adapter = new ArrayAdapter<Item>(
MainPortal.this,
android.R.layout.select_dialog_item,
android.R.id.text1,
items2){
public View getView(int position, View convertView, ViewGroup parent) {
//User super class to create the View
View v = super.getView(position, convertView, parent);
TextView tv = (TextView)v.findViewById(android.R.id.text1);
//Put the image on the TextView
tv.setCompoundDrawablesWithIntrinsicBounds(items2[position].icon, 0, 0, 0);
//Add margin between image and text (support various screen densities)
int dp5 = (int) (5 * getResources().getDisplayMetrics().density + 0.5f);
tv.setCompoundDrawablePadding(dp5);
return v;
}
};
AlertDialog.Builder builder1 = new AlertDialog.Builder(MainPortal.this);
builder1.setTitle("Please select the Module you wish to load and use");
builder1.setAdapter(adapter, new DialogInterface.OnClickListener() {
//builder1.setItems(items1, new DialogInterface.OnClickListener() { // comment out this line to try to use the adapter
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items1[item], Toast.LENGTH_LONG).show();
}
}).create().show();
break;
...
}//end switch
所以这个效果非常好,经过5-6个小时后我才开始工作。
虽然我在这方面太新了解了解其中的一些内容。 我的公司1-5,可以选择将公司标题加载到名称旁边。
如果可能的话,我想在保持宽高比的同时缩小它们。 因此,
int max_allowed = 50;
if(getWidth() > getHeight){
scaleTo(50, (getWidth()/getHeight()*50));
}else if(getWidth() < getHeight){
scaleTo((getWidth()/getHeight()*50), 50) ;
}else{
scaleTo(50, 50);
}
任何和帮助设置边界的正确方法将非常感激,我只是不理解items2 [position] .icon是一个整数并引用或转换它的drawable。
感谢, 约书亚
答案 0 :(得分:0)
经过一段时间的挖掘,我找到了答案。
为了调整大小,所需的更改如下所示。之后,简单的if语句就足以调整公司横幅尺寸
final Drawable image;
Resources res = getResources();
image = res.getDrawable(items2[position].icon);
image.setBounds(0, 0, 50, 50);
tv.setCompoundDrawables(image, null, null, null);
//tv.setCompoundDrawablesWithIntrinsicBounds(image,0,0,0);//items2[position].icon, 0, 0, 0);