郑州网站制作工作室,网页源代码修改后怎么保存,所有网站的分辨率,运营怎么自学先看下运行结束 这里有两个Button 点击第一个Button运行的结果#xff01;第一张有一个旋转的灰色圈圈#xff01; 点击第二个Button运行的结果如下#xff1a;带进度条的 ok,看下实现方法 先在配置清单中加一个访问网络的权限#xff01; uses-permission android:nam…先看下运行结束 这里有两个Button 点击第一个Button运行的结果第一张有一个旋转的灰色圈圈 点击第二个Button运行的结果如下带进度条的 ok,看下实现方法 先在配置清单中加一个访问网络的权限 uses-permission android:nameandroid.permission.INTERNET / 下面是第一个Button实现效果所使用的方法 第一步在image布局中添加控件 ImageViewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:idid/imaged/ProgressBarandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:visibilitygoneandroid:layout_centerInParenttrueandroid:idid/progressBar/ 第二步直接到ImageTeakJava类中来 public class ImageTeak extends AppCompatActivity {private ProgressBar mProgressbar;private ImageView mImage;private MyAsyncTask task;//网络图片地址private static String urlhttp://b365.photo.store.qq.com/psb?/V1112Bib4N2Zv2/yIw4AGwbwoCsuA5Zid.eAEE9YpH0znIsrS4os49LY7M!/c/dG0BAAAAAAAAboOARoBQAAAAAREHY!rfmood_app;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.image);mProgressbar (ProgressBar) findViewById(R.id.progressBar);mImage (ImageView) findViewById(R.id.imaged);//创建一个类task new MyAsyncTask();//启动task.execute(url);}/** AsyncTaskString,Void,Bitmap第一个参数为输入的url参数是String类型的第二个参数我们没有进度条所以为Void类型的第三个参数返回的是Bitmap*/class MyAsyncTask extends AsyncTaskString,Void,Bitmap{Override//第一个会调用的方法protected void onPreExecute() {// 开始之前要做的准备操作在这里面执行super.onPreExecute();mProgressbar.setVisibility(View.VISIBLE);//显示进度}Override//第三个会调用的方法。用来展示处理的结果// 当doInBackground方法完成异步处理之后会调用的方法protected void onPostExecute(Bitmap bitmap) {super.onPostExecute(bitmap);mProgressbar.setVisibility(View.GONE);/*** 将doInBackground方法中* 返回的bitmap解析的图片设置给ImageView* */mImage.setImageBitmap(bitmap);}Override//第二个会调用的方法。真正的耗时操作下载网络图片protected Bitmap doInBackground(String... strings) {//获取传递进来的参数,取出对应的URLString urlstrings[0];//定义网络连接对象URLConnection connection;//获取需要的BitmapBitmap bitmapnull;//获取数据的输入流InputStream is;try {//获取网络连接对象connectionnew URL(url).openConnection();//获取输入流isconnection.getInputStream();//包装下BufferedInputStream bisnew BufferedInputStream(is);//设置睡眠三秒Thread.sleep(3000);//通过decodeStream方法解析输入流将输入流解析成Bitmap图片bitmap BitmapFactory.decodeStream(bis);//关闭流is.close();bis.close();//捕获异常} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}//返回的是解析后的网络图像return bitmap;}}
} 第三步在activity.xml布局中添加两个 Button Buttonandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickloadImageandroid:text加载图片/Buttonandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:idid/loadProgressandroid:onClickloadProgressandroid:text带进度条的获取图片/ 第四步在Mactivity.java中进行编辑 public class MainActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/* MsyncTask tasknew MsyncTask();task.execute();*/}public void loadImage(View view){Intent intentnew Intent(MainActivity.this,ImageTeak.class);startActivity(intent);}public void loadProgress(View view){Intent intentnew Intent(MainActivity.this,ProgressTesk.class);startActivity(intent);}
} OK点击第一个Button效果的代码写完啦、 再看下第第二ButtOn实现效果的代码 第一步在progress.xml布局中添加控件 ImageViewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:idid/imageView/ProgressBarandroid:visibilitygoneandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentstyle?android:attr/progressBarStyleHorizontalandroid:idid/barandroid:layout_centerInParenttrue/ 第二步对ProgressTesk.java类进行编辑 public class ProgressTesk extends AppCompatActivity {private ProgressBar bar;private MyAsyncTask task;private ImageView imageView;private static String urlhttp://b389.photo.store.qq.com/psb?/V1112Bib4N2Zv2/0Ahi.ZaLH*i0tsSy3dlWnUNIXOXdYXRbVdwdoUpfxwk!/m/dIUBAAAAAAAAnullboOASgBQAAAAAFB70!rfphotolistt5;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.progress);//控件实例化bar (ProgressBar) findViewById(R.id.bar);imageView (ImageView) findViewById(R.id.imageView);//创建对象tasknew MyAsyncTask();//启动异步处理task.execute(url);}class MyAsyncTask extends AsyncTaskString,Integer,Bitmap{Overrideprotected void onPreExecute() {super.onPreExecute();bar.setVisibility(View.VISIBLE);}Overrideprotected Bitmap doInBackground(String... strings) {for (int i0;i100;i){publishProgress(i);//传递进度值给onProgressUpdate方法try {Thread.sleep(300);} catch (InterruptedException e) {e.printStackTrace();}}String urlstrings[0];URLConnection connection;Bitmap bitmapnull;InputStream is;try {connectionnew URL(url).openConnection();isconnection.getInputStream();BufferedInputStream bisnew BufferedInputStream(is);Thread.sleep(3000);bitmap BitmapFactory.decodeStream(bis);is.close();bis.close();} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}return bitmap;}/*** 这个方法是承接doInBackground方法中的i的* 通过Integer方法所传递出来的i作用到了values数组上* */Override //获取进度更新值protected void onProgressUpdate(Integer... values) {super.onProgressUpdate(values);/*** 从values数组中传递过来的i作为mProgressBar的进度值* 由于这里只传递进来一个数所以这里只需要获取0就OK了~* */bar.setProgress(values[0]);}Overrideprotected void onPostExecute(Bitmap bitmap) {super.onPostExecute(bitmap);bar.setVisibility(View.GONE);imageView.setImageBitmap(bitmap);}}
} 最后运行下看效果如何... 转载于:https://www.cnblogs.com/zyl222/p/7595424.html