当前位置: 编程技术>移动开发
本页文章导读:
▪推荐小弟我的第一款游戏 推荐我的第一款游戏
我这个游戏上线已经5天了,不过没有卖出几个copy,很多还是朋友支持的,觉得特别郁闷。不过今天两位朋友给了我很大的鼓励,节选一下他们的留言(绝对不是托):(1.........
▪ drawable(hdpi,ldpi,mdpi)的差别 drawable(hdpi,ldpi,mdpi)的区别
在android 2.0以上版本中,drawable目录被拆分成了三个目录:drawable-hdpi,drawable-ldpi,drawable-mdpi),主要是为了支持多分辨率,hdpi里面主要放高分辨率的图片,.........
▪ Notification中展示ProgressBar组件 Notification中显示ProgressBar组件
1. 在Notification中显示ProgressBar,效果图:
2. 实现步骤:
(1)在res/layout/目录中定义notification.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
&l.........
[1]推荐小弟我的第一款游戏
来源: 互联网 发布时间: 2014-02-18
推荐我的第一款游戏
我这个游戏上线已经5天了,不过没有卖出几个copy,很多还是朋友支持的,觉得特别郁
闷。不过今天两位朋友给了我很大的鼓励,节选一下他们的留言(绝对不是托):
(1) 哈哈... 郁闷啊... 昨天本来说11点睡觉的, 玩你的游戏玩到2点....
(2) 有了cute ball 我妈终于不抢我的电脑偷菜了.......但她开始抢我的itouch了......
终于想起来,我之所以会这个游戏,是因为我老爸很喜欢玩搞怪碰碰球。其实这个游戏很
适合女孩子或者长辈玩,确实很好玩。虽然画面一般,不过音效还是很不错的。我强烈推
荐给女生或者是家长们。
我想推广是第一位的,但是这个好玩的游戏希望和大家分享也是真心的。如果不好玩,可
以回帖骂我。
不推荐喜欢男生,因为估计男生喜欢玩这种游戏的不多。
下载地址:http://itunes.apple.com/us/app/cute-ball/id424038177?mt=8
官网: http://gerystudio.telenms.com/cuteball.html
[2] drawable(hdpi,ldpi,mdpi)的差别
来源: 互联网 发布时间: 2014-02-18
drawable(hdpi,ldpi,mdpi)的区别
在android 2.0以上版本中,drawable目录被拆分成了三个目录:drawable-hdpi,drawable-ldpi,drawable-mdpi),主要是为了支持多分辨率,hdpi里面主要放高分辨率的图片,如WVGA (480x800),FWVGA (480x854),mdpi里面主要放中等分辨率的图片,如HVGA (320x480),ldpi里面主要放低分辨率的图片,如QVGA (240x320),系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。程序里还是使用R.drawable来引用图片资源。在开发程序时为了兼容不同平台和不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
在android 2.0以上版本中,drawable目录被拆分成了三个目录:drawable-hdpi,drawable-ldpi,drawable-mdpi),主要是为了支持多分辨率,hdpi里面主要放高分辨率的图片,如WVGA (480x800),FWVGA (480x854),mdpi里面主要放中等分辨率的图片,如HVGA (320x480),ldpi里面主要放低分辨率的图片,如QVGA (240x320),系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。程序里还是使用R.drawable来引用图片资源。在开发程序时为了兼容不同平台和不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
[3] Notification中展示ProgressBar组件
来源: 互联网 发布时间: 2014-02-18
Notification中显示ProgressBar组件
1. 在Notification中显示ProgressBar,效果图:
2. 实现步骤:
(1)在res/layout/目录中定义notification.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:gravity = "center_vertical"
>
<ImageView
android:id = "@+id/image"
android:layout_width = "wrap_content"
android:layout_height = "fill_parent"
/>
<ProgressBar
android:id = "@+id/progressBar"
android:layout_width = "180dip"
android:layout_height = "wrap_content"
style = "?android:attr/progressBarStyleHorizontal"
android:layout_gravity = "center_vertical"
/>
<TextView
android:id = "@+id/tip"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:textSize = "16px"
android:textColor = "#FF0000"
/>
</LinearLayout>
(2)主Activity实现:
public class NotificationActivity extends Activity {
private NotificationManager mNotificationManager;
private RemoteViews mRemoteViews;
private Intent mIntent;
private PendingIntent mPendingIntent;
private int mProgress = 0;
private Notification notification = new Notification();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**
* Activity主布局,布局中存在一个Button,单击Button后启动多线程并向StatusBar发送Notification提醒。
*/
setContentView(R.layout.main);
/**
* 获取Notification管理器。
*/
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
/**
* 利用notification.xml文件创建RemoteView对象。
*/
mRemoteViews = new RemoteViews(getPackageName(), R.layout.notification);
/**
* 单击Notification时发出的Intent消息。
*/
mIntent = new Intent(NotificationActivity.this, 自定义Activity.class);
mPendingIntent = PendingIntent.getActivity(NotificationActivity.this, 0, mIntent, 0);
/**
* 获取Button对象,设置单击事件,单击后启动多线程向StatusBar发送Notification提醒。
*/
Button sendNotification = (Button) findViewById(R.id.sendNotification);
sendNotification.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
/**
* 设置Notification的Icon图标。
*/
notification.icon = R.drawable.icon;
mRemoteViews.setImageViewResource(R.id.image, R.drawable.icon);
/**
* 启动多线程更新Notification提醒。
*/
new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 20; i++) {
mProgress = (i + 1) * 5;
try {
if (i < 19) {
Thread.sleep(1000);
} else {
Thread.currentThread().interrupt();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
Message message = new Message();
mHandler.sendMessage(message);
}
}
}).start();
}
});
}
private Handler mHandler = new Handler() {
public void handleMessage(Message message) {
/**
* 设置RemoteView组件中进度条的进度值。
*/
mRemoteViews.setProgressBar(R.id.progressBar, 100, mProgress, false);
mRemoteViews.setTextViewText(R.id.tip, "Download:" + mProgress + "%");
/**
* 给Notification设置布局。
*/
notification.contentView = mRemoteViews;
/**
* 给Notification设置Intent,单击Notification会发出这个Intent。
*/
notification.contentIntent = mPendingIntent;
/**
* 发送Notification提醒。
*/
mNotificationManager.notify(0, notification);
super.handleMessage(message);
}
};
} 转自:http://blog.csdn.net/mayingcai1987/archive/2011/03/06/6226685.aspx
最新技术文章: