当前位置: 编程技术>移动开发
本页文章导读:
▪4.3 Toast的运用 4.3 Toast的使用
package com.chaowen;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
imp.........
▪ 写播放器随感 写播放器有感
最近写了个播放器,基本功能都实现了,还添加了其他很有用的功能,比如甩歌,下载歌词,同步歌词,自定义列表,播放网络歌曲等。总结:直接从数据库中读取音乐文件.........
▪ 从网络中上载一张图片.用户可以手动取消上载 从网络中下载一张图片.用户可以手动取消下载
package com.flashget.age.touch;
import java.net.HttpURLConnection;
import java.net.URL;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
imp.........
[1]4.3 Toast的运用
来源: 互联网 发布时间: 2014-02-18
4.3 Toast的使用
package com.chaowen;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Ex04_03_Toast extends Activity {
/** Called when the activity is first created. */
private TextView mTextView;
private EditText mEditText;
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextView=(TextView)findViewById(R.id.myTextView);
mEditText=(EditText)findViewById(R.id.myEditText);
button=(Button)findViewById(R.id.myButton);
button.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
//声明字符串变量并取得用户输入的EditText字符串
Editable str;
str=mEditText.getText();
//使用系统标准的makeText方式来产生Toast信息
Toast.makeText(Ex04_03_Toast.this, "你的愿望"+str.toString()+"已经送给圣诞老人的信箱", Toast.LENGTH_LONG).show();
}
});
}
}
[2] 写播放器随感
来源: 互联网 发布时间: 2014-02-18
写播放器有感
最近写了个播放器,基本功能都实现了,还添加了其他很有用的功能,比如甩歌,下载歌词,同步歌词,自定义列表,播放网络歌曲等。
总结:直接从数据库中读取音乐文件列表,除非你按格式去加载,否则会有很多的错误,导致你无法加载,所以最后我选择首次使用时对系统所有文件进行扫描,保存到一个txt文件中,这样以后直接从中加载。当然对于歌手名等信息你可以通过扫描得出的路径再到数据库中查找。
最近写了个播放器,基本功能都实现了,还添加了其他很有用的功能,比如甩歌,下载歌词,同步歌词,自定义列表,播放网络歌曲等。
总结:直接从数据库中读取音乐文件列表,除非你按格式去加载,否则会有很多的错误,导致你无法加载,所以最后我选择首次使用时对系统所有文件进行扫描,保存到一个txt文件中,这样以后直接从中加载。当然对于歌手名等信息你可以通过扫描得出的路径再到数据库中查找。
1 楼
小羊fc
2011-04-17
自己顶:那位感兴趣的人士可以相互交流呦
[3] 从网络中上载一张图片.用户可以手动取消上载
来源: 互联网 发布时间: 2014-02-18
从网络中下载一张图片.用户可以手动取消下载
package com.flashget.age.touch;
import java.net.HttpURLConnection;
import java.net.URL;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
/**
* @author 小阿哥
* @fuction 从网络中获取一张图片.用户可以手动取消下载.
*
* */
public class MainActivity extends Activity {
/** Called when the activity is first created. */
static MainActivity activity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
activity = this;
setContentView(new MyView(this));
}
}
class MyView extends View {
Bitmap bitmap=null;
ProgressDialog pd=null;
Thread t = null;
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
getBitmap();
this.setFocusableInTouchMode(true);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawColor(Color.RED);
System.out.println("onDraw....");
if (bitmap != null) {
canvas.drawBitmap(bitmap, 0, 0, null);
}
}
private void getBitmap() {
//设置对话框...
pd = new ProgressDialog(this.getContext());
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setTitle("小阿哥加载美女图片");
pd.setMessage("美女加载中....");
pd.setCancelable(false);
pd.setButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
t.interrupt();
System.out.println("手动强制停止线程..");
}
});
pd.show();
//启动线程...
t = new Thread(new Runnable() {
int progress = 0;
@Override
public void run() {
// TODO Auto-generated method stub
//下面代码片段都是浮云....
while (progress < 100) {
progress += 10;
MainActivity.activity.runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
pd.setProgress(progress);
}
});
try {
Thread.sleep(1000);
} catch (Exception ex) {
progress = 500;
System.out.println("Thread....EX:" + ex.toString());
}
}
//当手动强制取消后,直接返回..
if (progress == 500) {
return;
}
//从网络中获得一张图片.
try {
URL url = new URL(
"http://www.hsqzone.cn/about/UploadPic/2011-1/2011143928414.gif");
HttpURLConnection urlConnection = (HttpURLConnection) url
.openConnection();
if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
bitmap = BitmapFactory.decodeStream(urlConnection
.getInputStream());
}
urlConnection.disconnect();
urlConnection = null;
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("Connection..EX" + e.toString());
}
System.out.println("bitmap:" + bitmap);
//取消对话框...
pd.dismiss();
//更新视图...
MyView.this.postInvalidate();
}
});
t.start();
}
}
stop造成死锁,已经被废除了,现在大部分是设置flag
如果是持续运行的话,在run里面while(flag){},想停止设置未false就可以了.
如果不是持续运行的话.那么可以使用interrupt()来终止线程.
1 楼
573842281
2012-06-08
敢问一下阿哥,怎么停止http请求呢?线程停止了,后台是否还在继续下载呢?请指教!
最新技术文章: