2012-01-28 10 views
0

イブニング ポストをは...私はこの非常に便利なポストに出くわしたと私はすべてのサイズを除いて格好良いしている、

を警告アイコンのサイズを変更: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 [位置]を理解していない助ける整数であり、かつ、そこから描画可能を参照するか、変換.icon 。

おかげで、 ジョシュア

答えて

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); 
関連する問題