先上图看效果:
首先是Activity布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/app_bg_gray2"
android:orientation="vertical">
<Button
android:id="@+id/bt_submission_evaluate"
android:layout_width="match_parent"
android:layout_height="@dimen/dimen_50dp"
android:text="提交评价"
android:textColor="@color/white"
android:background="@color/app_button"
android:layout_alignParentBottom="true"
/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/dimen_80dp"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:gravity="center"
android:padding="@dimen/dimen_10dp"
android:layout_marginTop="@dimen/dimen_10dp"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="您对本次教学还满意吗?" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
>
<com.itheima.roundedimageview.RoundedImageView
android:id="@+id/user_icon"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/dp_16"
android:scaleType="fitXY"
android:src="@drawable/icon_default_head"
app:riv_oval="true"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dimen_60dp"
android:text="王大大教练"
android:textSize="@dimen/dimen_11sp"
android:textColor="@color/white"
android:background="@drawable/shape_school_username"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dimen_40dp"
>
<TextView
android:id="@+id/tv_year1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="教龄"
android:layout_marginBottom="@dimen/dimen_10dp"
android:textColor="@color/tc_gray_3"
android:layout_marginLeft="@dimen/dimen_80dp"
/>
<TextView
android:id="@+id/tv_number2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="累计服务学员"
android:layout_marginBottom="@dimen/dimen_10dp"
android:textColor="@color/tc_gray_3"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/dimen_80dp"
/>
<TextView
android:id="@+id/tv_year"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_year1"
android:text="8年"
android:textColor="@color/tc_gray_3"
android:layout_marginLeft="85dp"
/>
<TextView
android:id="@+id/tv_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_number2"
android:text="100人"
android:textColor="@color/tc_gray_3"
android:layout_alignParentRight="true"
android:layout_marginRight="100dp"
/>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/white"
android:padding="@dimen/dimen_10dp"
android:layout_marginTop="@dimen/dimen_10dp"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="整体评价"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dimen_30dp"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<LinearLayout
android:id="@+id/linear_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
>
<ImageView
android:id="@+id/img_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/diamond_seleted_img1"
/>
<TextView
android:id="@+id/tv_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="美美哒"
android:layout_marginLeft="@dimen/dimen_5dp"
android:textSize="@dimen/dimen_13sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/linear_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
>
<ImageView
android:id="@+id/img_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_alignParentRight="true"
android:background="@drawable/diamond_seleted_img2"
/>
<TextView
android:id="@+id/tv_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="一般般"
android:layout_marginLeft="@dimen/dimen_5dp"
android:textSize="@dimen/dimen_13sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/linear_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
>
<ImageView
android:id="@+id/img_3"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="@drawable/diamond_seleted_img3"
/>
<TextView
android:id="@+id/tv_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="愤怒"
android:layout_marginLeft="@dimen/dimen_5dp"
android:textSize="@dimen/dimen_13sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<com.dyh.library.widget.AutoHeightGridView
android:id="@+id/gv_many"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="40dp"
android:layout_marginLeft="80dp"
android:layout_marginRight="40dp"
android:layout_marginTop="40dp"
android:horizontalSpacing="25dp"
android:listSelector="@color/transparent"
android:numColumns="2"
android:verticalSpacing="15dp"
>
</com.dyh.library.widget.AutoHeightGridView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="vertical"
android:background="@color/white"
android:layout_marginTop="@dimen/dimen_10dp"
>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:textSize="@dimen/dimen_14sp"
android:hint="其他想说的..."
android:layout_marginLeft="@dimen/dimen_10dp"
android:layout_marginTop="@dimen/dimen_40dp"
android:cursorVisible="false"
/>
</LinearLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
这是Activity的:
package com.dyh.drivingschool.ui.school; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.view.Display; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.dyh.drivingschool.R; import com.dyh.drivingschool.ui.school.adapter.MyAdapter; import com.dyh.drivingschool.ui.school.customclass.MailboxPaperDialog; import com.dyh.library.base.TitleFragmentActivity; import com.dyh.library.widget.AutoHeightGridView; import com.itheima.roundedimageview.RoundedImageView; import java.util.ArrayList; import static com.dyh.drivingschool.R.id.img_1; import static com.dyh.drivingschool.R.id.img_2; import static com.dyh.drivingschool.R.id.img_3; /** * Created by ljg on 2018/7/12. * 教练评价 */ public class SchoolEvaluateActivity extends TitleFragmentActivity implements View.OnClickListener { private ImageView mImg1; private ImageView mImg2; private ImageView mImg3; private TextView mTv1; private TextView mTv2; private TextView mTv3; private LinearLayout mLinear1; private LinearLayout mLinear2; private LinearLayout mLinear3; private MailboxPaperDialog paperDialog; private RoundedImageView mUser_icon; // 头像图片 private TextView mTv_year; // 几年教龄 private TextView mTv_number; // 服务多少学员 private Button mBt_submission_evaluate; // 提交评论按钮 private AutoHeightGridView mGv_many; // 提交评论按钮 private MyAdapter adapter; private ArrayList<String> mList; private Context mContext; //用来存放选中的item private ArrayList<Integer> list; private ArrayList<String> mList2;//用来存放选中的数据 private Handler handler = new Handler(); private int a = 3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addLayout(R.layout.activity_school_evaluate); mContext = this; initView(); initAdapter(); initData(); } private void initData() { } private void initAdapter() { } private void initView() { mImg1 = (ImageView) findViewById(img_1); mImg2 = (ImageView) findViewById(img_2); mImg3 = (ImageView) findViewById(img_3); mTv1 = (TextView) findViewById(R.id.tv_1); mTv2 = (TextView) findViewById(R.id.tv_2); mTv3 = (TextView) findViewById(R.id.tv_3); mLinear1 = (LinearLayout) findViewById(R.id.linear_1); mLinear2 = (LinearLayout) findViewById(R.id.linear_2); mLinear3 = (LinearLayout) findViewById(R.id.linear_3); mUser_icon = (RoundedImageView) findViewById(R.id.user_icon); mTv_year = (TextView) findViewById(R.id.tv_year); mTv_number = (TextView) findViewById(R.id.tv_number); mBt_submission_evaluate = (Button) findViewById(R.id.bt_submission_evaluate); mGv_many = (AutoHeightGridView) findViewById(R.id.gv_many); mLinear1.setOnClickListener(this); mLinear2.setOnClickListener(this); mLinear3.setOnClickListener(this); mBt_submission_evaluate.setOnClickListener(this); mList = new ArrayList<String>(); list = new ArrayList<Integer>(); mList2 = new ArrayList<String>(); //添加假数据 for (int i = 0; i < 7; i++) { mList.add("耐心负责"); } adapter = new MyAdapter(mList, list, mContext); mGv_many.setAdapter(adapter); mGv_many.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String name = mList.get(position); if (list.contains(position)) { for (int i = 0; i < list.size(); i++) { if (position == list.get(i)) { list.remove(i); mList2.remove(name); // //可把获取到的字段作为参数传递 // Toast.makeText(mContext, "你取消选择了" + name + ",第" + (position + 1) + "个item", // Toast.LENGTH_SHORT).show(); } } } else { list.add(position); //保存选中的数据 mList2.add(name); // //可把获取到的字段作为参数传递 // Toast.makeText(mContext, "你选择了" + name + ",第" + (position + 1) + "个item", // Toast.LENGTH_SHORT).show(); } adapter.notifyDataSetChanged(); } }); } @Override protected void initTitileBar() { titleLayout.showCenterLeftIconView("教练评价"); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.linear_1: mImg1.setSelected(true); mImg2.setSelected(false); mImg3.setSelected(false); mTv1.setTextColor(Color.parseColor("#00a0e9")); mTv2.setTextColor(Color.parseColor("#666666")); mTv3.setTextColor(Color.parseColor("#666666")); break; case R.id.linear_2: mImg1.setSelected(false); mImg2.setSelected(true); mImg3.setSelected(false); mTv1.setTextColor(Color.parseColor("#666666")); mTv2.setTextColor(Color.parseColor("#00a0e9")); mTv3.setTextColor(Color.parseColor("#666666")); break; case R.id.linear_3: mImg1.setSelected(false); mImg2.setSelected(false); mImg3.setSelected(true); mTv1.setTextColor(Color.parseColor("#666666")); mTv2.setTextColor(Color.parseColor("#666666")); mTv3.setTextColor(Color.parseColor("#00a0e9")); break; case R.id.bt_submission_evaluate: showlDialog(); handler.postDelayed(runnable, 1000); break; } } Runnable runnable = new Runnable() { @Override public void run() { a--; if (a == 1) { handler.postDelayed(runnable, 1000); paperDialog.dismiss(); } else { handler.postDelayed(runnable, 1000); } } }; private void showlDialog() { paperDialog = new MailboxPaperDialog(SchoolEvaluateActivity.this, R.style.AlertDialogCustom); paperDialog.createDialog(); // 将对话框的大小按屏幕大小的百分比设置 WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); WindowManager.LayoutParams lp = paperDialog.getWindow().getAttributes(); lp.width = (int) (display.getWidth() * 0.8); //设置宽度 paperDialog.getWindow().setAttributes(lp); paperDialog.getWindow().setDimAmount(0.2f);//设置弹出后的遮罩透明度 paperDialog.setCanceledOnTouchOutside(true);//点击外部取消 Window window = paperDialog.getWindow(); window.setBackgroundDrawableResource(R.drawable.shape_bu_yuanjiao); paperDialog.show(); } }
这是Adapter:
package com.dyh.drivingschool.ui.school.adapter; /** * Created by ljg on 2018/7/13. */ import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.RelativeLayout; import android.widget.TextView; import com.dyh.drivingschool.R; import java.util.ArrayList; public class MyAdapter extends BaseAdapter { private ArrayList<String> mList;//数据集合 private ArrayList<Integer> list;//位置集合 private Context mContext; public MyAdapter(ArrayList<String> mList,ArrayList<Integer> list,Context mContext) { super(); this.mList = mList; this.list = list; this.mContext = mContext; } @Override public int getCount() { // TODO Auto-generated method stub return mList.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return arg0; } @Override public View getView(int position, View arg1, ViewGroup arg2) { // TODO Auto-generated method stub View view = View.inflate(mContext, R.layout.gridview_item,null); TextView tv = (TextView) view.findViewById(R.id.textView1); RelativeLayout layout = (RelativeLayout) view.findViewById(R.id.rl_layout); tv.setText(mList.get(position)); //选中时,改变背景色,索引要一致 for (int i = 0; i < list.size(); i++) { if(position==list.get(i)){ layout.setBackgroundResource(R.drawable.bg_selected); } } return view; } } 这是布局中Imageview的选中状态:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/select_true_img" android:state_selected="true"/> <item android:drawable="@drawable/select_false_img" android:state_selected="false"/> </selector>
这个是适配器的选中效果布局
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <stroke android:width="@dimen/dimen_0.5dp" android:color="@color/color_school_name" /> <corners android:radius="5dp"/> <padding android:bottom="3dp" android:left="10dp" android:right="10dp" android:top="3dp" /> <solid android:color="@color/app_school_def" /> </shape>
这是adapter的item布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rl_layout" android:background="@drawable/bg_default" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:textSize="@dimen/dimen_14sp" android:text="TextView" /> </RelativeLayout>
不喜勿喷,有更好的欢迎分享!