• 在drawable中新建文件type的类型还有圆形扇形
  • 聊天程序设计
    • 主布局list_messagexml
    • 单条左边Msg的布局send_receivexml
    • 单条右边Msg的布局send_rightxml
    • Msg的适配器类
    • MyMsg类
    • 主函数类
    • Image的布局teache_imagexml
    • ExpresionAdapter 的适配器
    • PopupWindow的布局popupwindowxml

在drawable中新建文件,type的类型还有圆形,扇形

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient android:type="linear"android:startColor="#aee3d9"android:centerColor="#d5decd"android:endColor="#fff4de"android:angle="-90"/>
</shape>

聊天程序设计

主布局(list_message.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><LinearLayout
        android:id="@+id/grid_in_below"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#18b4ed"android:gravity="center"android:orientation="horizontal" ><TextView
            android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dp"android:text="杜 Q"android:textSize="20sp" /></LinearLayout><ListView
        android:id="@+id/msg_list_view"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:background="@drawable/dialog_background"android:cacheColorHint="#ffffffff"android:divider="#55ff0000" ></ListView><LinearLayout
        android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#ebecee"android:gravity="center" ><ImageView
            android:id="@+id/image_view"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="0.20"android:src="@drawable/eoj" /><Button
            android:id="@+id/image"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="bottom"android:layout_marginBottom="5dp"android:layout_marginLeft="5dp"android:layout_marginTop="5dp" /><Button
            android:id="@+id/left_send"android:layout_width="wrap_content"android:layout_height="30dp"android:layout_gravity="bottom"android:layout_margin="5dp"android:background="@drawable/obtain_verification"android:padding="5dp"android:text="left" /><EditText
            android:id="@+id/input_text"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_margin="5dp"android:layout_weight="1"android:background="@drawable/edit_shape"android:ems="10"android:hint="请输入要发送的内容"android:inputType="textMultiLine"android:maxHeight="200dp"android:maxLines="8"android:minHeight="30dp"android:paddingBottom="5dp"android:paddingTop="5dp" ></EditText><Button
            android:id="@+id/right_send"android:layout_width="wrap_content"android:layout_height="30dp"android:layout_gravity="bottom"android:layout_margin="5dp"android:background="@drawable/obtain_verification"android:padding="5dp"android:text="right" /></LinearLayout><GridView
        android:id="@+id/image_gridView"android:layout_width="match_parent"android:layout_height="200dp"android:background="#ffffff"android:numColumns="5"android:visibility="gone" ></GridView></LinearLayout>

单条左边Msg的布局(send_receive.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextView
        android:id="@+id/time"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:padding="10dp"android:text=""android:textColor="#000000" /><LinearLayout
        android:id="@+id/left_layout"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="left" ><ImageView
            android:id="@+id/left_image_view_head"android:layout_width="70dp"android:layout_height="70dp"android:src="@drawable/ic_launcher" /><LinearLayout
            android:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="vertical" ><LinearLayout
                android:layout_width="match_parent"android:layout_height="wrap_content" ><TextView
                    android:id="@+id/left_office_title_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/yingzhang_shape_background"android:text="营长"android:textColor="@color/white"android:textSize="15sp" /><TextView
                    android:id="@+id/left_nicheng"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="昵称"android:textColor="#000000" /></LinearLayout><TextView
                android:id="@+id/left_msg"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="70dp"android:background="@drawable/eng"android:gravity="center"android:text="dddddddddddddddddddddddddddddddddddddddd"android:textColor="#000000"android:textSize="20sp" /></LinearLayout></LinearLayout></LinearLayout>

单条右边Msg的布局(send_right.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="right"android:orientation="vertical" ><TextViewandroid:id="@+id/right_time"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:padding="10dp"android:text=""android:textColor="#000000" /><LinearLayoutandroid:id="@+id/right_layout"android:layout_width="wrap_content"android:layout_height="wrap_content" ><LinearLayoutandroid:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="right"android:orientation="vertical" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="5dp"android:gravity="right" ><TextViewandroid:id="@+id/right_nicheng"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="454"android:textColor="#000000" /><TextViewandroid:id="@+id/right_office_title_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/yingzhang_shape_background"android:text="营长" /></LinearLayout><TextViewandroid:id="@+id/right_msg"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="70dp"android:background="@drawable/eog"android:gravity="center"android:text="kl"android:textColor="#000000"android:textSize="20sp" /></LinearLayout><ImageViewandroid:id="@+id/right_image_view_head"android:layout_width="70dp"android:layout_height="70dp"android:src="@drawable/ic_launcher" /></LinearLayout></LinearLayout>

Msg的适配器类

package com.normal.mymsg;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;import com.test.login.R;
import com.test.message_send_receive.Msg;import android.graphics.drawable.Drawable;
import android.text.Html;
import android.text.Html.ImageGetter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SimpleAdapter;
import android.widget.TextView;public class MyAdapter extends BaseAdapter {//给短信设置不同的类型,根据不同的类型选择不同的适配器public static final int TYPE_RECEIVED = 0;public static final int TYPE_SEND = 1;//因为有两种类型,所以type的最多有两种public static final int MAX_TYPE = 2;//得到LayoutInflater private LayoutInflater mInflater;//把主文件集合中的数据传递过来private List<MyMsg> mData;//Spanned的一个参数private Html.ImageGetter mImageGetter;//时间转换形式private SimpleDateFormat mFormat = new SimpleDateFormat("EE HH:mm");public MyAdapter(LayoutInflater mInflater, List<MyMsg> mData, Html.ImageGetter mImageGetter) {this.mInflater = mInflater;this.mData = mData;this.mImageGetter = mImageGetter;}@Overridepublic int getItemViewType(int position) {// 得到布局的类型return mData.get(position).getType();}// 查看缓存类型的数量@Overridepublic int getViewTypeCount() {return MAX_TYPE;}@Overridepublic int getCount() {//都是根据传入的集合进行设置return mData.size();}//@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {int type = getItemViewType(position);ViewHolderRight vRight = null;ViewHolder viewHolder = null;if (convertView == null) {//通过类型选择要填充的视图布局switch (type) {case TYPE_RECEIVED:convertView = mInflater.inflate(R.layout.send_receive, null);viewHolder = new ViewHolder();viewHolder.leftLayout = (LinearLayout) convertView.findViewById(R.id.left_layout);viewHolder.imageView_header = (ImageView) convertView.findViewById(R.id.left_image_view_head);viewHolder.textview_time = (TextView) convertView.findViewById(R.id.time);viewHolder.textview_message = (TextView) convertView.findViewById(R.id.left_msg);viewHolder.textview_nicheng = (TextView) convertView.findViewById(R.id.left_nicheng);viewHolder.textview_ofice_title = (TextView) convertView.findViewById(R.id.left_office_title_text);convertView.setTag(viewHolder);break;case TYPE_SEND:convertView = mInflater.inflate(R.layout.send_right, null);vRight = new ViewHolderRight();vRight.rightLayout = (LinearLayout) convertView.findViewById(R.id.right_layout);vRight.imageView_header = (ImageView) convertView.findViewById(R.id.right_image_view_head);vRight.textview_time = (TextView) convertView.findViewById(R.id.right_time);vRight.textview_message = (TextView) convertView.findViewById(R.id.right_msg);vRight.textview_nicheng = (TextView) convertView.findViewById(R.id.right_nicheng);vRight.textview_ofice_title = (TextView) convertView.findViewById(R.id.right_office_title_text);convertView.setTag(vRight);break;default:break;}}MyMsg msg = mData.get(position);//通过类型赋给不同布局的参数值switch (type) {case TYPE_RECEIVED:viewHolder = (ViewHolder) convertView.getTag();viewHolder.imageView_header.setImageResource(R.drawable.ic_launcher);String time = mFormat.format(new Date(msg.getTime()));viewHolder.textview_time.setText(time);viewHolder.textview_message.setText(Html.fromHtml(msg.getMessage(), mImageGetter, null));viewHolder.textview_nicheng.setText(msg.getNicheng());viewHolder.textview_ofice_title.setText(msg.getOffice_title());break;case TYPE_SEND:vRight = (ViewHolderRight) convertView.getTag();vRight.imageView_header.setImageResource(R.drawable.ic_launcher);String time2 = mFormat.format(new Date(msg.getTime()));vRight.textview_time.setText(time2);vRight.textview_message.setText(Html.fromHtml(msg.getMessage(), mImageGetter, null));vRight.textview_nicheng.setText(msg.getNicheng());vRight.textview_ofice_title.setText(msg.getOffice_title());break;default:break;}return convertView;}class ViewHolder {LinearLayout leftLayout;ImageView imageView_header;TextView textview_ofice_title;TextView textview_nicheng;TextView textview_time;TextView textview_message;}class ViewHolderRight {LinearLayout rightLayout;ImageView imageView_header;TextView textview_ofice_title;TextView textview_nicheng;TextView textview_time;TextView textview_message;}
}

MyMsg类

package com.normal.mymsg;import android.text.Spanned;public class MyMsg {private int image;private String office_title;private String nicheng;private Long time;private String message;private int type;public static final int TYPE_RECEIVED=0;public static final int TYPE_SEND=1;public int getType() {return type;}public void setType(int type) {this.type = type;}public MyMsg(int image, String office_title, String nicheng, Long time, String message) {this.image = image;this.office_title = office_title;this.nicheng = nicheng;this.time = time;this.message = message;}public void setImage(int image) {this.image = image;}public void setOffice_title(String office_title) {this.office_title = office_title;}public void setNicheng(String nicheng) {this.nicheng = nicheng;}public void setTime(Long time) {this.time = time;}public void setMessage(String message) {this.message = message;}public MyMsg() {}public int getImage() {return image;}public String getOffice_title() {return office_title;}public String getNicheng() {return nicheng;}public Long getTime() {return time;}public String getMessage() {return message;}
}

主函数类

package com.test.message_send_receive;import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;import com.normal.image.ExpresionAdapter;
import com.normal.mymsg.MyAdapter;
import com.normal.mymsg.MyMsg;
import com.test.login.R;
import com.test.login.R.layout;
import com.test.message_image.ConcreteWatched;
import com.test.message_image.ImageAdapter;
import com.test.message_image.ImageDialog;
import com.test.message_image.MsgImage;
import com.test.message_image.Watched;import android.app.Activity;
import android.content.DialogInterface;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.text.Html;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.SpannedString;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;public class MainMessage extends Activity implements OnClickListener {private Html.ImageGetter mImageGeter;private ListView mListView;private EditText mEditText;private ImageView mImageView;private LayoutInflater mInflater;private Button mLeftSend;private Button mRightSend;private MyAdapter myAdapter;//把短信类放入到一个集合中private List<MyMsg> myListImage = new ArrayList<>();private Button mImage;private ExpresionAdapter mExpresionAdapter;private GridView mTeacheGridView;//为不同图片的名称,对应ImageAdapter中的文件顺序private String[] mImageData = { "dra", "drb", "drc", "drd", "dre", "drf", "drg", "drh", "dri", "drj", "drk", "drl","drm", "drn", "dro", "drp", "drq", "drr", "drs", "drt", "dru", "drv", "drw", "drx", "dry", "drz" };//下面这几句主要是PopupWindow 用得到private PopupWindow mPopupWindow;private LinearLayout gridBelow;private GridView mPopGridView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.list_message);//初始化PopupWindow mPopupWindow = new PopupWindow(this);//设置PopupWindow 的宽度mPopupWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);//设置PopupWindow 的高度mPopupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);//把PopupWindow 设为焦点mPopupWindow.setFocusable(true);//同时设置PopupWindow 外面是可以点击的mPopupWindow.setOutsideTouchable(true);//得到PopupWindow 的视图布局View popupWindow = getLayoutInflater().inflate(R.layout.popupview, null);//设置为填充布局mPopupWindow.setContentView(popupWindow);//给PopupWindow 添加GridView布局mPopGridView = (GridView) popupWindow.findViewById(R.id.pop_gridView);//设置popupWindow显示在哪个控件下面gridBelow = (LinearLayout) findViewById(R.id.grid_in_below);//为最左边的图片mImageView = (ImageView) findViewById(R.id.image_view);mListView = (ListView) findViewById(R.id.msg_list_view);//图片旁边那个键mImage = (Button) findViewById(R.id.image);mImage.setOnClickListener(this);mLeftSend = (Button) findViewById(R.id.left_send);mLeftSend.setOnClickListener(this);mRightSend = (Button) findViewById(R.id.right_send);mRightSend.setOnClickListener(this);//得到图片单条的视图布局mTeacheGridView = (GridView) findViewById(R.id.image_gridView);"****重点****"mInflater = getLayoutInflater();mImageGeter = new Html.ImageGetter() {@Overridepublic Drawable getDrawable(String source) {Drawable drawable = null;if (source != null) {//利用反射,查找对应的图片Class clazz = R.drawable.class;try {Field field = clazz.getDeclaredField(source);//得到图片的id,为了设置图片的大小int sourcedId = field.getInt(clazz);drawable = getResources().getDrawable(sourcedId);drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());} catch (NoSuchFieldException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}} else {//也是为了设置在富文本中要显示图片的大小drawable = getResources().getDrawable(R.drawable.ic_launcher);drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());}return drawable;}};mImageView.setOnClickListener(this);//得到图片的适配器,初始化,mExpresionAdapter = new ExpresionAdapter(getLayoutInflater());//给Expresion添加适配器mTeacheGridView.setAdapter(mExpresionAdapter);//给PopupWindow添加适配器mPopGridView.setAdapter(mExpresionAdapter);//为单条短信的适配器myAdapter = new MyAdapter(mInflater, myListImage, mImageGeter);//给短信的集合添加适配器mListView.setAdapter(myAdapter);//设置Expresion的点击事件,同时将对应的图片显示在EditText中mTeacheGridView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Spanned span = Html.fromHtml("<img src='" + mImageData[position] + "'/>", mImageGeter, null);mEditText.getText().insert(mEditText.getSelectionStart(), span);}});//设置PopupWindow的点击事件,同时将对应的图片显示在EditText中mPopGridView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Spanned span = Html.fromHtml("<img src='" + mImageData[position] + "'/>", mImageGeter, null);mEditText.getText().insert(mEditText.getSelectionStart(), span);}});}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.left_send://将不同的短信类型填入,为了适配器中便于区分MyMsg msg = new MyMsg();//设置头像msg.setImage(R.drawable.ic_launcher);msg.setMessage(filterHtml(Html.toHtml(mEditText.getText())));//设置昵称msg.setNicheng("小康");//设置等级msg.setOffice_title("营长");msg.setTime(System.currentTimeMillis());msg.setType(MyAdapter.TYPE_RECEIVED);myListImage.add(msg);myAdapter.notifyDataSetChanged();mListView.setSelection(myListImage.size() - 1);mEditText.setText("");break;case R.id.right_send:MyMsg msg1 = new MyMsg();msg1.setImage(R.drawable.ic_launcher);msg1.setMessage(filterHtml(Html.toHtml(mEditText.getText())));msg1.setNicheng("小康");msg1.setOffice_title("营长");msg1.setTime(System.currentTimeMillis());msg1.setType(MyAdapter.TYPE_SEND);myListImage.add(msg1);myAdapter.notifyDataSetChanged();mListView.setSelection(myListImage.size() - 1);mEditText.setText("");break;case R.id.image:if (mPopGridView.getVisibility() == View.VISIBLE) {mPopGridView.setVisibility(View.GONE);} else {mPopGridView.setVisibility(View.VISIBLE);}mPopupWindow.showAsDropDown(gridBelow);break;case R.id.image_view:if (mTeacheGridView.getVisibility() == View.VISIBLE) {mTeacheGridView.setVisibility(View.GONE);} else {mTeacheGridView.setVisibility(View.VISIBLE);}break;}}//因为在EditText中已经为Spanned形式,所以用此方法转换成一般形式,最后在适配器中在转化成Spanned形式private String filterHtml(String str) {str = str.replaceAll("<(?!br|img)[^>]+>", "").trim();return str;}}

Image的布局(teache_image.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><ImageView android:id="@+id/teache_image"android:padding="10dp"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>

ExpresionAdapter 的适配器

package com.normal.image;import com.test.login.R;import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;public class ExpresionAdapter extends BaseAdapter {private int[] mData = { R.drawable.dra, R.drawable.drb, R.drawable.drc, R.drawable.drd, R.drawable.dre,R.drawable.drf, R.drawable.drg, R.drawable.drh, R.drawable.dri, R.drawable.drj, R.drawable.drk,R.drawable.drl, R.drawable.drm, R.drawable.drn, R.drawable.dro, R.drawable.dro, R.drawable.drq,R.drawable.drr, R.drawable.drs, R.drawable.drt, R.drawable.dru, R.drawable.drv, R.drawable.drw,R.drawable.drx, R.drawable.dry, R.drawable.drz };private LayoutInflater mInflater;public ExpresionAdapter(LayoutInflater mInflater) {this.mInflater = mInflater;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn mData.length;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder = null;if (convertView == null) {viewHolder = new ViewHolder();convertView = mInflater.inflate(R.layout.teache_image, null);viewHolder.imageView = (ImageView) convertView.findViewById(R.id.teache_image);convertView.setTag(viewHolder);}viewHolder = (ViewHolder) convertView.getTag();viewHolder.imageView.setImageResource(mData[position]);return convertView;}class ViewHolder {ImageView imageView;}}

PopupWindow的布局(popupwindow.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><GridView android:id="@+id/pop_gridView"android:layout_height="wrap_content"android:layout_width="wrap_content"android:numColumns="5"></GridView></LinearLayout>

QQ对话框、背景渐变色相关推荐

  1. 自定义组件 QQ对话框

    自定义组件 QQ对话框 实现效果如下: 基本xml资源 values/color.xml <?xml version="1.0" encoding="utf-8&q ...

  2. MFC 对话框背景图片

    在windows开发当中做界面的主要技术之一就是使用MFC,通常我们看到的QQ,360,暴风影音这些漂亮的界面都可以用MFC来实现.今天我们来说一下如何用MFC美化对话框,默认情况下,对话框的背景如下 ...

  3. android设置背景颜色渐变,Android背景渐变色(shape,gradient)

    Android设置背景色可以通过在res/drawable里定义一个xml,如下: android:startColor="#FFF" android:endColor=" ...

  4. VC/MFC如何设置对话框背景颜色

    方法一:调用CWinApp类的成员函数SetDialogBkColor来实现.  (这个函数已经废弃) ? 1 void SetDialogBkColor(COLORREF clrCtlBk = RG ...

  5. MFC 基础知识:对话框背景添加图片和按钮Button添加图片

    很长时间没有接触MFC相关的知识了,我大概是在大二时候学习的MFC相关知识及图像处理,现在由于要帮个朋友完成个基于C++的程序,所以又回顾了下相关知识.的确,任何知识一段时间过后都比较容易忘记,但回顾 ...

  6. MFC VS2012对话框背景填图

    这是使用VS 2012编写MFC对话框程序的教程,主要是关于图片处理方面的操作,这些在MFC游戏.图片处理.软件编写中是经常要用到的知识. 一.创建项目 文件-新建项目-MFC应用程序-该页面使用&q ...

  7. android自定义渐变色,Android设置背景渐变色

    效果如图,本章只谈背景渐变色,仪表盘下一篇文章 实现步骤,只需两步: 1.在res/drawable中新建一个gradual_color_bg.xml 内容如下: android:startColor ...

  8. 对话框找不到WM_ERASEBKGND消息的解决方法与对话框背景图片的载入方法

    From:  http://wmnmtm.blog.163.com/blog/static/38245714201041535119716/ 为了让对话框程序更为漂亮,一般都是在窗口的WM_ERASE ...

  9. 百度SEO网页背景渐变色代码

    很漂亮网页背景渐变色代码,背景颜色不断变换,用来做网站背景还是挺不错的 下载地址: http://www.bytepan.com/77DYghsNOdA

  10. VC 对话框背景颜色 控件颜色

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 系统环境 ...

最新文章

  1. 013_html水平线
  2. 改变静态文本notify 属性_CocosCreator脚本属性个性化定制——下拉列表属性、滑动条属性...
  3. 洛谷.4172.[WC2006]水管局长(LCT Kruskal)
  4. asp.net控件开发基础(20)
  5. [Redis6]配置文件详解
  6. 数仓大法好!跨境电商 Shopee 的实时数仓之路
  7. 详细剖析linux的内存管理方式(分段式、分页式、段页式),以及进程状态的具体关系
  8. 真实的布兰妮,有点壮
  9. 使用 pycharm安装各个模块
  10. 红黑树的红黑有什么意义_红枸杞和黑枸杞有什么不同?黑枸杞真的比红枸杞要好吗?...
  11. android uri内部协议,Android 解析 Intent 协议并打开程序 – 热爱改变生活
  12. 微积分(第二版) 吴传生 编|高等教育出版 课后习题答案
  13. 【CV-Paper 08】ResNet:Deep Residual Learning for Image Recognition
  14. Selenium使用之——键盘操作方法
  15. python mpi_MPI Python环境搭建
  16. ydisk安卓版本_mydisktest
  17. Python爬虫以及数据可视化分析!
  18. Uva1665岛屿——并查集
  19. MIT-BIH ECG 信号的数据读取方法和Matlab程序
  20. 四氧化三锰(CAS1317 35 7)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. win10服务器只显示4g内存,要注意了,4G内存在win10系统中根本不够用
  2. Vue3.0中文文档(Vue3 + TS学习资源路线)
  3. python实现wgs84坐标系和ECEF坐标系的互换
  4. SEO关键词优化 - 利用免费资源刷排名
  5. Diygw拖拽自动生成App
  6. 易语言 火眼 哈勃 防分析源码
  7. NASA 用哈勃望远镜定格你的星空
  8. 原创 迈达斯GTS-NX网格模型(FPN)导入Flac3D 6.0 源码
  9. inovance变频器说明书参数设置_汇川(INOVANCE)MD300A变频器说明书.pdf
  10. 好好编程-物流项目20【客户管理-删除客户】