例外:android.widget.LinearLayout不能转换为android.widget.ImageView

问题描述:

我需要动态设置图像到网格视图。但我收到异常:android.widget.LinearLayout不能转换为android.widget.ImageView 我需要获取没有onclick网格的视图。所以请帮助我。例外:android.widget.LinearLayout不能转换为android.widget.ImageView

private void setTickMark(String icon_name_val) { 
    ImageView imageView = (ImageView) rootView; 
    //getting clicked image 
    String iconimg = icon_name_val; 
    String iconimgname = iconimg; 
    // int idval = getResources().getIdentifier(iconimgname, "drawable",getActivity().getPackageName()); 
    // Drawable drawable = getResources().getDrawable(idval); 
    // Log.d("dra",String.valueOf(drawable)); 
    int resID = getResources().getIdentifier(iconimgname, "drawable", getActivity().getPackageName()); 
    Bitmap bitmapbus = BitmapFactory.decodeResource(getResources(), R.drawable.bus); 

    Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(), resID); 
    Bitmap resized = Bitmap.createScaledBitmap(bitmap1, bitmapbus.getWidth(), bitmapbus.getHeight(), true); 

    Bitmap bitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.tick); 
    // Bitmap resultBitmap = Bitmap.createBitmap(bitmap2.getWidth(), bitmap2.getHeight(), Bitmap.Config.ARGB_8888); 
    Bitmap resultBitmap = Bitmap.createBitmap(bitmapbus.getWidth(), bitmapbus.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas c = new Canvas(resultBitmap); 
    c.drawBitmap(resized, 0, 0, null); 
    c.drawBitmap(bitmap2, 0, 0, null); 

    imageView.setImageBitmap(resultBitmap); 
} 



<LinearLayout 
    android:layout_width="fill_parent" 
    android:id="@+id/popup" 
    android:layout_height="0dp" 
    android:layout_weight=".90" 
    android:orientation="vertical" 
    android:layout_margin="20dp" 
    android:layout_marginTop="20dp"> 



    <GridView 
     android:id="@+id/gridview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:columnWidth="60dp" 
     android:numColumns="auto_fit" 
     android:verticalSpacing="20dp" 
     android:horizontalSpacing="20dp" 
     android:stretchMode="columnWidth" 
     android:gravity="center" 
     android:layout_marginTop="10dp" 
     android:layout_marginBottom="10dp" 
     /> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:orientation="horizontal" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:gravity="center" 
     android:layout_marginTop="4dp" 
     android:duplicateParentState="true" 
     > 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Add" 
      android:id="@+id/save" 

      /> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Cancel" 
      android:id="@+id/cancel"/> 
    </LinearLayout> 
</LinearLayout> 
+0

什么是_rootView_这里? 它只是说,** rootView **是android.widget.LinearLayout的实例,并且您试图将其分配给ImageView imageView对象。 –

+0

这里的rootview是线性布局,但我需要将图像设置为网格视图 – gStephin

+0

@stephingeorge请在此处添加您的小部件布局文件 –

添加到imageview的你的GridView

那么只能定义ImageView imageView = (ImageView) rootView.findViewById(R.id.ImageView1);