Android功能实现

¥开启¥

【使用jni实现Tost】

〖2017-08-20 22:15:04〗

《在xx.cpp中写入以下代码€ void Java_com_jni_test_MainActivity_showToast(JNIEnv *env, jobject thiz,jobject context, jstring str){€ jclass tclss = env->FindClass("android/widget/Toast");€ jmethodID mid = env->GetStaticMethodID(tclss,"makeText","(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;");€ jobject job = env->CallStaticObjectMethod(tclss,mid,context,str);€ jmethodID showId = env->GetMethodID(tclss,"show","()V");€ env->CallVoidMethod(job,showId,context,str);€ }€€在MainActivity声明€public static native void showToast(Context context,String msg)€€//然后调用€showToast(this,"你好")》

『小菜』

〔Android功能实现〕

【Dialog和Popupmenu】

〖2017-08-20 11:59:31〗

《一、对话框Dialog:€€//得到构建对象€AlertDialog.Builder builder = new AlertDialog.Builder(this);€builder.setTitle("标题");€builder.setMessage("提示内容");€€//添加按钮,参数二为点击事件可以为null€builder.setPositiveButton("确定", new OnClickListener());€builder.setNegativeButton("取消", new OnClickListener());€builder.setNeutralButton("确定", new OnClickListener());€€//加入一个列表,参数二为点击事件监听€String[] listArray = new String[]{"第一个","第二个","第三个"};€builder.setItems(listArray,new OnItemClickListener());€€//与上一个类似,每项后面多一个单选按钮,0代表默认选中项的行号€builder.setSingleChoiceItems(listArray,0,new OnCheckedChangeListener());€€//添加一个布局到对话框中€ViewGroup viewGroup = (ViewGroup) this.getLayoutInflater().inflate(R.layout.activity_main,null);€builder.setView(viewGroup);€€//创建并显示对话框€AlertDialog alertDialog = builder.create();€alertDialog.show();€€€二、PopupWindow:€€// 构建泡泡窗口:€ViewGroup pop = (ViewGroup)getLayoutInflater().inflate(R.layout.popupwindows_pro,null);€PopupWindow popupWindow = new PopupWindow(pop, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);€€//获取焦点€popupWindow.setFocusable(true);€€//设置空白背景,这样点空白部分就会关闭€popupWindow.setBackgroundDrawable(new BitmapDrawable());€//设置进出动画:€popupWindow.setAnimationStyle(R.style.anim);€//在styles.xml中定义动画样式€€€//根据父元素位置显示,x,y是偏移距离€View pView = (View) button.getParent();€popupWindow.showAtLocation(pView, Gravity.CENTER, x, y);€//在view组件下方显示,不够会显示在上方€popupWindow.showAsDropDown(view, x, y);€//关闭泡泡窗口:€popupWindow.dismiss();€//设置键盘事件可控制按back键关闭€pop.setOnKeyListener();€》

『小菜』

〔Android功能实现〕

【Sharedprefence用法】

〖2017-08-20 12:04:05〗

《shared_prefs是软件常用的保存用户一些设置的€数据文件,它位于data/data/包名/shared_prefs目录下。€String fileName = "login";€ //要操作的文件名€SharedPreferences preferences = getSharedPreferences(fileName,MODE_PRIVATE);€€//根据键取得一个值,未找到则值为第二个参数€String str = preferences.getString("key","no");€//如果取int值就用getInt,布尔值就用getBoolean€€//拿到编辑对象€SharedPreferences.Editor editor = preferences.edit();€€//存入一个键值对,第一个键,第二个值,放int就putInt€editor.putString("key","value");€€//根据键移除一对键值对€editor.remove("key");€€//提交以上操作€editor.commit();》

『小菜』

〔Android功能实现〕

【调用QQ加入QQ群】

〖2017-08-18 19:16:14〗

《先在Activity里创建方法€€public boolean JoinQQGroup(String key)€{€Intent intent = new Intent();€intent.setData(Uri.parse("mqqopensdkapi;€//bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26k%3D" + key));€try€{€startActivity(intent);€return true;€}€catch (Exception e)€{€Toast.makeText(this, "未安装手Q或安装的版本不支持!", 0).show();€return false;€}€}€然后到qun.qq.com获得你群的key,然后在onCreat里调用€JoinQQGroup("这里填你群的key")€例如我的就是€JoinQQGroup("Q4vTVHDFWLF0HKpz_iIsGBznr6IIDR2N");€》

『小菜』

〔Android功能实现〕

【读取安装包下assets文件】

〖2017-08-18 18:17:45〗

《//拿到输入流,参数为assets中文件名

InputStream in = getAssets().open("aa.txt"); €//然后就可以像平常的IO一样操作了,例如复制到SD卡中: €try { €InputStream in = getAssets().open("a.txt");€File file = new File("storage/sdcard0/a.txt");€FileOutputStream out = new FileOutputStream(file); €int len = -1 ; €byte[] bytes = new byte[1024]; €while( (len=in.read(bytes) ) != -1){ € out.write(bytes,0,len); €} €out.close(); €in.close(); €} catch (IOException e) { € e.printStackTrace(); €} €》

『小菜』

〔Android功能实现〕

【Sharedprefence写法】

〖2017-08-18 18:20:36〗

《shared_prefs是软件常用的保存用户一些设置的 €数据文件,它位于data/data/包名/shared_prefs目录下。€String fileName = "login"; //要操作的文件名€SharedPreferences preferences = getSharedPreferences(fileName,MODE_PRIVATE); €€//根据键取得一个值,未找到则值为第二个参数 €String str = preferences.getString("key","no"); €//如果取int值就用getInt,布尔值就用getBoolean €€//拿到编辑对象 €SharedPreferences.Editor editor = preferences.edit(); €€//存入一个键值对,第一个键,第二个值,放int就putInt €editor.putString("key","value"); €€//根据键移除一对键值对 €editor.remove("key"); €€//提交以上操作 €editor.commit();€》

『小菜』

〔Android功能实现〕

【直接跳转到QQ里分享文字】

〖2017-08-18 18:22:36〗

《 Intent intent=new Intent(Intent.ACTION_SEND); €intent.setType("text/plain"); €intent.setClassName("com.tencent.mobileqq","com.tencent.mobileqq.activity.JumpActivity"); €intent.putExtra(Intent.EXTRA_TEXT,"这是要分享的文本");€intent.putExtra(Intent.EXTRA_TITLE,"分享");€intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);€try{€startActivity(Intent.createChooser(intent,"分享")); €}catch(Exception e){€Toast.makeText(context,"未安装手Q或当前版本不支持",1000).show();€}€}》

『小菜』

〔Android功能实现〕

【TextView显示图片】

〖2017-08-16 17:06:52〗

《/** €*HashMap存放图片的文字代码和图片的路径 €*/ €HashMap keyImage = new HashMap(); €keyImage.put("[image01]", R.drawable.img1);€keyImage.put("[image02]", R.drawable.img2);€TextView textView = (TextView)€findViewById(R.id.content_editText1); €//为TextView添加文本改变监听 €textView.addTextChangedListener(new MarkImageWatcher(keyImage,MainActivity.this)); €textView.setText("[image01]"); €/** €*自定义TextWatcher类 €*/ €public class MarkImageWatcher implements TextWatcher { €HashMap key = new HashMap(); €Context context; €//构造方法,€€public€MarkImageWatcher(HashMap key, Context context) { €super(); €this.key = key; €this.context = context; €} €@Override €public void afterTextChanged(Editable arg0) { €String text = arg0.toString();€Iterator iterator = key.keySet().iterator(); €while (iterator.hasNext()) { €String k = iterator.next(); €if (text.contains(k)) { €int index = 0;€while ((index = text.indexOf(k, index)) != -1) { €Drawable drawable = context.getResources().getDrawable(key.get(k));€drawable.setBounds(0, 0, 300,500); €//将代表图片的文本标记为图片 €arg0.setSpan(new ImageSpan(drawable,ImageSpan.ALIGN_BASELINE), index,index + k.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);€index += k.length(); €}€} €} €} €}》

『小菜』

〔Android功能实现〕

【Activity跳转+动画】

〖2017-08-16 17:14:25〗

《1.普通跳转: €Intent intent = new Intent(); €intent.setClass(this,NextActivity.class); €//往下一个界面传值,可省略 €intent.putExtra("key",value);€startActivity(intent); €€//下一个界面接收值: €Intent intent = this.getIntent(); €String value = intent.getStringExtra("key"); €//如果是int型就getIntgerExtra€€2.带返回值的跳转:€startActivityForResult(intent,requestcode); €//在本类中监听返回结果€@Override €protected void onActivityResult(intrequestCode, int resultCode, Intent data){ €//得到返回值 €String result = data.getStringExtra("key"); €} €//下一个界面写: €Intent intent = this.getIntent(); €intent.putExtra("key",value);€setResult(resultCode,intent); €€3.销毁activity :finish(); €4.activity的重绘: €//重新加载一个布局 €this.setContentView(R.layout.new_main); €€5.activity切换动画: €//在startActivity之后添加€this.overridePendingTransition(R.anim.enterAnim, R.anim.exitAnim); €》

『小菜』

〔Android功能实现〕

【开机自启程序】

〖2017-08-16 17:18:28〗

《€€1.新建一个类继承广播类: €public class BootBroadcastReceiver extends BroadcastReceiver { €static final String action_boot = "android.intent.action.BOOT_COMPLETED";€@Override €public void onReceive(Context context, Intent intent) { €if (intent.getAction().equals(action_boot)) { €//接受到开机广播后打开MainActivity界面 €Intent ootStartIntent = new Intent(context, MainActivity.class);€ootStartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); €context.startActivity(ootStartIntent); €} €} €} €2.在配置清单中配置这个广播: €€ € €€ € € €€2.添加开机自启权限: €€》

『小菜』

〔Android功能实现〕

【复制安装包中的数据库】

〖2017-08-16 06:53:23〗

《1.方法调用示例: €€//得到数据库文件路径 €Filedatabase1=getDatabasePath("res_download.db"); €//调用方法€copyDatabaseFile(IndexActivity.this, false, database1,R.raw.res_download); €2.复制安装包中数据库方法:€€//最后一个参数是res/raw/中的资源id €public static€void€copyDatabaseFile(Context context, boolean isfored,File databaseName,int rawId) {€File dir = databaseName.getParentFile();€if (!dir.exists()) {€try {€dir.mkdir();€} catch (Exception e) {€e.printStackTrace();€}€}€if(databaseName.exists() && !isfored){€//如果isfored=false不会删除以前的数据库€return ;€}€try {€if(databaseName.exists()){€//如果isfored=true而且存在删除以前的数据库€databaseName.delete();€}€databaseName.createNewFile():€InputStream in = context.getResources().openRawResource(rawId);€int size = in.available(); €byte buf[] = new byte[size];€in.read(buf); €in.close();€FileOutputStream out =new€FileOutputStream(databaseName);€out.write(buf);€out.close();€} catch (Exception e) {€e.printStackTrace();€}€}》

『小菜』

〔Android功能实现〕

【复制assets文件夹到SD卡】

〖2017-08-16 07:01:12〗

《€//第一个参数assets中文件夹,第二个复制的新路径 €€private void CopyAssets(String assetDir, String dir) { €String[] files;€try { €files = this.getResources().getAssets().list(assetDir); €} catch (IOException e1){ €return; €} €File mWorkingPath = new File(dir); € //如果文件夹不存在,创建 €if (!mWorkingPath.exists()) {€if (!mWorkingPath.mkdirs()) { €Log.e("--CopyAssets--", "创建目录失败"); €} €} €for (int i = 0; i < files.length; i++) { €try { €String fileName = files[i]; €//如果名字不包含点,就是文件夹 €if (!fileName.contains(".")) { €if (0 == assetDir.length()){ €CopyAssets(fileName, dir + fileName + "/"); €} else {€CopyAssets(assetDir + "/" + fileName, dir + fileName + "/"); €} €continue; €}€File outFile = new File(mWorkingPath, fileName); €if (outFile.exists()) €outFile.delete(); €InputStream in = null; €if (0 != assetDir.length())€in = getAssets().open(assetDir + "/" + fileName); €else€in = getAssets().open(fileName);€OutputStream out =newFileOutputStream(outFile); €//用一个byte组从输入流读取写到输出流中€byte[] buf = new byte[1024];€int len; €while ((len = in.read(buf)) > 0) {€out.write(buf, 0, len); €}€in.close(); €out.close();€} catch (FileNotFoundException e) { €e.printStackTrace();€} catch (IOException e) {€e.printStackTrace(); €} €} €} €》

『小菜』

〔Android功能实现〕

【读取assets和rae文件】

〖2017-08-16 07:07:3〗

《一、读取assets中文件:€//拿到输入流,参数为assets中文件名€InputStream in = getAssets().open("aa.txt"); €//然后就可以像平常的IO一样操作了,例如复制到SD卡中:€try { €InputStream in = getAssets().open("a.txt");€File file = new File("storage/sdcard0/a.txt");€FileOutputStream out =new€FileOutputStream(file); €int len = -1 ; €byte[] bytes = new byte[1024]; €while( (len=in.read(bytes) ) != -1){ €out.write(bytes,0,len); € } €out.close(); €in.close(); €} catch (IOException e) { €e.printStackTrace(); €} €€二、读取res/raw中的文件:€//拿到输入流,context是上下文,rawId是文件资源如R.raw.aa€InputStream in = context.getResources().openRawResource(rawId); €》

『小菜』

〔Android功能实现〕

【解压assets压缩包到SD卡】

〖2016-08-16 07:10:56〗

《/**context上下文对象 €*assetName压缩包名字 €*outputDirectory输出目录 € *isReWrite如果存在是否覆盖 € */ €public static void unZip(Context context, String assetName,String outputDirectory,boolean isReWrite) throws IOException {€//创建解压目标目录€File file = new File(outputDirectory);€//如果目标目录不存在,则创建€if (!file.exists()) {€file.mkdirs();€} €//打开压缩文件€InputStream inputStream = context.getAssets().open(assetName);€ZipInputStream zipInputStream = new ZipInputStream(inputStream);€//读取一个进入点€ZipEntry zipEntry = zipInputStream.getNextEntry();€//使用1Mbuffer€byte[] buffer = new byte[1024 * 1024]; €//解压时字节计数€int count = 0;€//如果进入点为空说明已经遍历完所有压缩包中文件和目录€while (zipEntry != null) {€//如果是一个目录€if (zipEntry.isDirectory()) {€file = new File(outputDirectory + File.separator + zipEntry.getName());€//文件需要覆盖或者是文件不存在 €if(isReWrite || !file.exists()){€file.mkdir();€}€} else {€//如果是文件€file = new File(outputDirectory + File.separator + zipEntry.getName()); €//文件需要覆盖或者文件不存在,则解压文件 €if(isReWrite || !file.exists()){€file.createNewFile(); €FileOutputStream fileOutputStream = newFileOutputStream(file);€while ((count = zipInputStream.read(buffer)) > 0)€{€fileOutputStream.write(buffer, 0, count);€}€fileOutputStream.close(); €} €}€//定位到下一个文件入口€zipEntry = zipInputStream.getNextEntry();€€} €zipInputStream.close(); €} 》

『小菜』

〔Android功能实现〕

【使用Mediaplarl播放视频】

〖2017-08-16 07:15:23〗

《import android.app.Activity;€import android.os.Bundle;€import android.widget.Button;€import android.widget.VideoView;€import android.view.View.OnClickListener;€import android.view.View;€import android.net.Uri;€import android.widget.MediaController;€€public class MainActivity extends Activity €}€private Button bn1,bn2,bn3;€private VideoView Video;€@Override€protected void onCreate(Bundle savedInstanceState)€ {€super.onCreate(savedInstanceState);€setContentView(R.layout.main);€//获取main布局文件里的控件对象€bn1=(Button)findViewById(R.id.mainButton1);€bn2=(Button)findViewById(R.id.mainButton2);€bn3=(Button)findViewById(R.id.mainButton3);€€Video=(VideoView)findViewById(R.id.mainVideoView1);€€Video.setVideoURI(Uri.parse("file://路径"));€//这里只需要把“路径”换成你视屏文件所在的目录路径就行了€Video.setMediaController(new€MediaController(this));€€bn1.setOnClickListener(new OnClickListener(){€@Override€public void onClick(View p1){€//调用start播放视屏方法€Video.start();€}€});€bn2.setOnClickListener(new OnClickListener(){€@Override€public void onClick(View p1){€//调用pause暂停播放方法€Video.pause();€}€});€bn3.setOnClickListener(new OnClickListener(){€@Override€public void onClick(View p1){€//调用结束方法€Video.stopPlayback();€}€});€}€}€//剩下的不多说€》

『小菜』

〔Android功能实现〕

【播放SD卡视频】

〖2017-08-16 07:21:47〗

《import android.app.Activity;€import android.os.Bundle;€import android.widget.Button;€import android.widget.VideoView;€import android.view.View.OnClickListener;

import android.view.View;€import android.net.Uri;€import android.widget.MediaController;€€public class MainActivity extends Activity €{€private Button bn1,bn2,bn3;€private VideoView Video;€@Override€protected void onCreate(Bundle savedInstanceState)€{€super.onCreate(savedInstanceState);€setContentView(R.layout.main);€bn1=(Button)findViewById(R.id.mainButton1);€bn2=(Button)findViewById(R.id.mainButton2);€bn3=(Button)findViewById(R.id.mainButton3);€Video=(VideoView)findViewById(R.id.mainVideoView1);€€Video.setVideoURI(Uri.parse("file://"));€/*€这里是填视屏文件的路径file://然后就是你的视屏路径€*/€Video.setMediaController(new MediaController(this));€bn1.setOnClickListener(new OnClickListener(){€@Override€public void onClick(View p1){€Video.start();€}€});€bn2.setOnClickListener(new OnClickListener(){€@Override€public void onClick(View p1){€Video.pause();€}€});€bn3.setOnClickListener(new OnClickListener(){€@Override€public void onClick(View p1){€Video.stopPlayback();€}€});€}€}€€//剩下的不多说,入门小白都会的€》

『小菜』

〔Android功能实现〕

【TextView显示图片】

〖2017-08-16 07:26:33〗

《/** €*HashMap存放图片的文字代码和图片的路径 € */ €HashMap keyImage = new HashMap(); €keyImage.put("[image01]", R.drawable.img1);€ keyImage.put("[image02]", R.drawable.img2); €TextView textView = (TextView)€findViewById(R.id.content_editText1); €//为TextView添加文本改变监听 €textView.addTextChangedListener(newMarkImageWatcher(keyImage,MainActivity.this)); €textView.setText("[image01]"); €/** €*自定义TextWatcher类 €*/ €public class MarkImageWatcher implements TextWatcher { €HashMap key = new HashMap(); €Context context;€//构造方法€public€MarkImageWatcher(HashMap key, Context context) { €super(); €this.key = key; €this.context = context; €} €@Override €public void afterTextChanged(Editable arg0) { €String text = arg0.toString():€Iterator iterator = key.keySet().iterator(); €while (iterator.hasNext()) { €String k = iterator.next(); €if (text.contains(k)) { €int index = 0; €while ((index = text.indexOf(k, index)) != -1) { €Drawable drawable = context.getResources().getDrawable(key.get(k));€drawable.setBounds(0, 0, 300,500); €//将代表图片的文本标记为图片 €arg0.setSpan(new ImageSpan(drawable,ImageSpan.ALIGN_BASELINE), index,index + k.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);€index += k.length(); €} €} €} €} €}€》

『小菜』

〔Android功能实现〕

【接收其他应用分享的数据】

〖2017-08-16 07:31:23〗

《public class ShareActivity extends€Activity{€ @Override€ protected void€onCreate(Bundle savedInstanceState) {€    // TODO Auto-generated method stub€  super.onCreate(savedInstanceState);  €  // 得到intent对象, 判断类型是 action 或者 MIME €    Intent intent = getIntent();€    String action = intent.getAction();€    String type = intent.getType();€    if (Intent.ACTION_SEND.equals(action) && type != null) {€        if ("text/plain".equals(type)) {€    handleSendText(intent);€/ 调用处理文本的方法€        } else if (type.startsWith("image/")) {€            handleSendImage(intent); €// 调用处理图片的方法€        }€    } else if (Intent.ACTION_SEND_MULTIPLE.equals(action) && type != null) {€        if (type.startsWith("image/")) {€ handleSendMultipleImages(intent); €// 调用处理多个图片的方法€        }€    } else {€        //其他的分享类型€    }€ }€ void€handleSendText(Intent intent) {€    String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);€    String sharedTitle = intent.getStringExtra(Intent.EXTRA_TITLE);€    if (sharedText != null) {€        // 得到分享的文本sharedText€    }€ }€ void€handleSendImage(Intent intent) {€    Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);€    if (imageUri != null) {€        // 得到分享的图片imageUri€    }€ } € void€handleSendMultipleImages(Intent intent) {€    ArrayList imageUris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);€    if (imageUris != null) {€// 得到分享的图片集合imageUris€    }€ }

} 》

『小菜』

〔Android功能实现〕

【调用分享功能】

〖2017-08-16 07:33:26〗

《 €//分享文本内容 €public static void shareText(Context context,String text) { €Intent sendIntent = new Intent();€sendIntent.setAction(Intent.ACTION_SEND); €sendIntent.putExtra(Intent.EXTRA_TEXT,text); €sendIntent.setType("text/plain"); €context.startActivity(Intent.createChooser(sendIntent, "分享文本")); €} €//分享图片 €public static void shareText(Context context,Uri uriToImage) { €Intent shareIntent = new Intent();€shareIntent.setAction(Intent.ACTION_SEND); €shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);€shareIntent.setType("image/jpeg"); €context.startActivity(Intent.createChooser(shareIntent, "分享图片")); €} €//分享多张图片 €public static void shareText(Context context,ArrayList imageUris) { €Intent shareIntent = new Intent();€shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE); €shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris); €shareIntent.setType("image/*");€startActivity(Intent€createChooser(shareIntent, "分享图片")); €} €》

『小菜』

〔Android功能实现〕

【调用系统应用】

〖2017-08-16 07:36:41〗

《一、调用图库选择图片:€€Intent intent=new Intent(); €intent.setType("image/*"); €intent.setAction(Intent.ACTION_GET_CONTENT);€startActivityForResult(intent,requestCode); €//监听返回结果 €@Override €public void onActivityResult(int requestCode,int resultCode,Intent data) {€if(resultCode==RESULT_OK) { €Uri uri=data.getData(); €ContentResolver cr=this.getContentResolver(); € //得到选择图片的Bitmap €Bitmap bitmap=BitmapFactory.decodeStream(cr.openInputStream(uri));€} €super.onActivityResult(requestCode, resultCode, data); €} €€二、调用相机拍照:€€//跳转到android自带的照相机 €Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); €photoUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;€startActivityForResult(intent, 1); €//监听拍照完成后的处理€@Override€protected€voide€onActivityResult(intrequestCode, int resultCode, Intent data) {€super.onActivityResult(requestCode, resultCode, data); €if(resultCode==Activity.RESULT_OK){€// 获取相机返回的数据,并转换为Bitmap图片格式 €Bundle bundle = data.getExtras(); €Bitmap bitmap = (Bitmap) bundle.get("data"); €} €} €€三、调用浏览器打开链接:€€Intent intent_d= new Intent(); €intent_d.setAction("android.intent.action.VIEW");    €Uri content_url = Uri.parse("http://www.aa.com");  €intent_d.setData(content_url);

startActivity(intent_d); €》

『小菜』

〔Android功能实现〕

 

【Android自定义弹窗】

〖2017.08.02〗

《dialog = new Dialog(this);

dialog.setCancelable(false);dialog.setCanceledOnTouchOutside(false);dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);final View view =LayoutInflater.from(this).inflate(R.layout.dialoglayout,null);dialog.setContentView(view);dialog.show();//dialoglayout是布局文件的名称,其它就不用我多讲了吧?》

『小菜』

〔Android功能实现〕

你可能感兴趣的:(Android功能实现)