如何在没有设置/膨胀布局的情况下声明imageview?

时间:2016-12-20 09:22:18

标签: android layout imageview

是否有任何代码可以声明imageview并设置imageresource而不会使布局膨胀?

我在其他布局中创建listview适配器,所以我没有膨胀布局。 但是无法将图像设置为imageview。

这是我的代码,但它不起作用

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_item_list_request,    container, false);
    setHasOptionsMenu(true);

    rlRequestWorkflow = (RelativeLayout)getActivity().findViewById(R.id.rlListRequestWorkflow);
    listPhoto = (ImageView)getActivity().findViewById(R.id.listPhoto);
    rlRequestWorkflow.addView(listPhoto);
 }

这是我目前的布局(主要课程)

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/flRequest"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
tools:context="com.ITK.SMP.Native.Workflow.ListRequest">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:choiceMode="singleChoice"
    android:background="#ffffff">

    <android.support.v4.widget.SwipeRefreshLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/swipeContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    <ListView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/lvRequest"
        android:choiceMode="singleChoice"
        android:nestedScrollingEnabled="false"
      />
    </android.support.v4.widget.SwipeRefreshLayout>
</RelativeLayout>

这是listadapter类

public class ListRequestAdapter extends ArrayAdapter<ListRequestItem> {
ImageView listPhoto;

public ListRequestAdapter(Context context, List<ListRequestItem> items)
{
    super(context, R.layout.style_fragment_list_request, items);

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder viewHolder;

    if(convertView == null) {
        // inflate the GridView item layout
        LayoutInflater inflater = LayoutInflater.from(getContext());
        convertView = inflater.inflate(R.layout.style_fragment_list_request, parent, false);

        // initialize the view holder
        viewHolder = new ViewHolder();
        viewHolder.tvTanggal = (TextView) convertView.findViewById(R.id.tvTanggalRequest);
        viewHolder.tvTipe = (TextView) convertView.findViewById(R.id.tvTipeRequest);
        viewHolder.tvStatus = (TextView) convertView.findViewById(R.id.tvStatus);
        viewHolder.permitid = "";
        convertView.setTag(viewHolder);
    } else {
        // recycle the already inflated view
        viewHolder = (ViewHolder) convertView.getTag();
    }

    // update the item view
    ListRequestItem item = getItem(position);
    viewHolder.tvTanggal.setText(item.tanggal);
    viewHolder.tvTipe.setText(item.tipe);
    viewHolder.tvStatus.setText(item.status);
    viewHolder.permitid = item.permitid;
    return convertView;
}

private static class ViewHolder {
    TextView tvTanggal;
    TextView tvTipe;
    TextView tvStatus;
    String permitid;
}

}

这是listadapterlayout中的imageview

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="reqtag"
android:id="@+id/rlListRequestWorkflow"
>
<LinearLayout
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:weightSum="1"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="0.2"
        android:orientation="vertical"
        android:layout_height="wrap_content">

        <!--ImageView here-->
        <de.hdodenhof.circleimageview.CircleImageView
            android:id="@+id/listPhoto"
            android:layout_width="65dp"
            android:layout_height="63dp"
            android:layout_weight="1"
            android:layout_gravity="center_horizontal"
            android:src="@drawable/ic_menu_camera"
            android:layout_marginTop="10dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="0.8"
        android:orientation="vertical"
        android:layout_height="wrap_content">

        <!--All textViews here-->
        <TextView
            android:layout_width="100dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Type"
            android:textSize="18dp"
            android:fontFamily="sans-serif"
            android:textColor="@color/black"
            android:id="@+id/tvTipeRequest"
            android:width="130dp" />

        <TextView
            android:layout_width="100dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Date"
            android:fontFamily="sans-serif"
            android:id="@+id/tvTanggalRequest"
            android:textSize="15dp"
            android:width="130dp" />

        <TextView
            android:layout_width="100dp"
            android:layout_weight="1"
            android:layout_height="50dp"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/black"
            android:text="Status"
            android:textSize="15dp"
            android:fontFamily="sans-serif"
            android:id="@+id/tvStatus"
            android:layout_column="38" />
    </LinearLayout>

</LinearLayout>

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

如果你不想夸大你的imageview,那么在class的构造函数中传递你的imageview,并从那里设置图像。

假设,MainActivity是存在图像视图的类

MainActivity.class

ImageView imageview;
imageview=(ImageView)findViewById(R.Id.imageview);

new ListAdapter(imageview);

ListAdapter.class

ImageView imageview;
//constructor
public ListAdapter(ImageView imageview){
  this.imageview=imageview;
}

//now you can use imageview to set image

答案 1 :(得分:0)

编辑: -  rlRequestWorkflow =(RelativeLayout) view .findViewById(R.id.rlListRequestWorkflow);     listPhoto =(ImageView) view .findViewById(R.id.listPhoto);