当前位置: 编程技术>移动开发
本页文章导读:
▪容易拖动效果(带Cache,需要完善) 简单拖动效果(带Cache,需要完善)
如何去实现一个具有幻象的拖拽效果?所谓”幻象“就是当你按下去拖动一个View时,View本身不动,拖动的是这个View的复制品,当抬起时真正的View才显示到.........
▪ 一个容易的音乐播放器 一个简单的音乐播放器
在这里主要是用两个简单的按钮实现音乐的播放和停止功能,工程的目录结构为同时添加一个文件夹,里面放后缀为MP3的文件就可以了在main配置文件主要是添加两.........
▪ 施用JqueryMobile开发购物网站 使用JqueryMobile开发购物网站
年初用了大约两周时间,使用JqueryMobile在现有系统上开发了手机版购物网站,在Safari上的运行截图如下:
(首页)
(商品列表)
(商品浏.........
[1]容易拖动效果(带Cache,需要完善)
来源: 互联网 发布时间: 2014-02-18
简单拖动效果(带Cache,需要完善)
如何去实现一个具有幻象的拖拽效果?
所谓”幻象“就是当你按下去拖动一个View时,View本身不动,拖动的是这个View的复制品,当抬起时真正的View才显示到拖动的地方。
复制品很容易解决,2句代码就可以了:
v.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(v.getDrawingCache());
如何去实现一个具有幻象的拖拽效果?
所谓”幻象“就是当你按下去拖动一个View时,View本身不动,拖动的是这个View的复制品,当抬起时真正的View才显示到拖动的地方。
复制品很容易解决,2句代码就可以了:
v.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(v.getDrawingCache());
package com.ql.app; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.FrameLayout.LayoutParams; /** * 参考:http://techdroid.kbeanie.com/2010/04/simple-drag-n-drop-on-android.html * @author admin * */ public class App extends Activity implements OnTouchListener{ private final static int START_DRAGGING = 0; private final static int STOP_DRAGGING = 1; private Button btn; private FrameLayout layout; private int status; private LayoutParams params; private ImageView image; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (FrameLayout) findViewById(R.id.layout); // layout.setOnTouchListener(this); btn = (Button) findViewById(R.id.btn); btn.setDrawingCacheEnabled(true); btn.setOnTouchListener(this); params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); } @Override public boolean onTouch(View view, MotionEvent me) { switch (me.getAction()) { case MotionEvent.ACTION_DOWN: status = START_DRAGGING; image = new ImageView(this); image.setImageBitmap(btn.getDrawingCache()); layout.addView(image, params); break; case MotionEvent.ACTION_MOVE: if (status == START_DRAGGING) { image.setPadding((int) me.getRawX(), (int) me.getRawY(), 0, 0); image.invalidate(); } break; case MotionEvent.ACTION_UP: status = STOP_DRAGGING; Log.i("Drag", "Stopped Dragging"); // layout.removeView(image); break; default: break; } return false; } }
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/layout" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn" android:text="Drag Me" /> </FrameLayout>
[2] 一个容易的音乐播放器
来源: 互联网 发布时间: 2014-02-18
一个简单的音乐播放器
在这里主要是用两个简单的按钮实现音乐的播放和停止功能,工程的目录结构为
同时添加一个文件夹,里面放后缀为MP3的文件就可以了
在main配置文件主要是添加两个Button
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"
Android:orientation="vertical" Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<TextView Android:layout_width="fill_parent"
Android:layout_height="wrap_content" Android:text="音乐播放服务" />
<Button Android:id="@+id/startMusic" Android:layout_width="wrap_content"
Android:layout_height="wrap_content" Android:text="开启音乐播放服务" />
<Button Android:id="@+id/stopMusic" Android:layout_width="wrap_content"
Android:layout_height="wrap_content" Android:text="停止音乐播放服务" />
</LinearLayout>
添加一个activity类和一个service类AndroidManifest.xml配置文件为
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.basi"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MusicServiceActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".MusicService"></service>
</application>
</manifest>
创建一个MusicServiceActivity类启动service类
package com.basi;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MusicServiceActivity extends Activity {
private static String TAG = "MusicService";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast.makeText(this, "MusicServiceActivity", Toast.LENGTH_SHORT).show();
Log.e(TAG, "MusicServiceActivity");
initlizeViews();
}
private void initlizeViews() {
Button btnStart = (Button) findViewById(R.id.startMusic);
Button btnStop = (Button) findViewById(R.id.stopMusic);
OnClickListener ocl = new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MusicServiceActivity.this,
MusicService.class);
switch (v.getId()) {
case R.id.startMusic:
// 开始服务
startService(intent);
break;
case R.id.stopMusic:
// 停止服务
stopService(intent);
break;
}
}
};
btnStart.setOnClickListener(ocl);
btnStop.setOnClickListener(ocl);
}
}
service类代码为
package com.basi;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;
public class MusicService extends Service {
private static String TAG = "MusicService";
private MediaPlayer mPlayer;
@Override
public void onCreate() {
Toast.makeText(this, "MusicSevice onCreate()", Toast.LENGTH_SHORT)
.show();
Log.e(TAG, "MusicSerice onCreate()");
mPlayer = MediaPlayer.create(getApplicationContext(), R.raw.a);
// 设置可以重复播放
mPlayer.setLooping(true);
super.onCreate();
}
@Override
public void onStart(Intent intent, int startId) {
Toast.makeText(this, "MusicSevice onStart()", Toast.LENGTH_SHORT)
.show();
Log.e(TAG, "MusicSerice onStart()");
mPlayer.start();
super.onStart(intent, startId);
}
@Override
public void onDestroy() {
Toast.makeText(this, "MusicSevice onDestroy()", Toast.LENGTH_SHORT)
.show();
Log.e(TAG, "MusicSerice onDestroy()");
mPlayer.stop();
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
效果图为
在这里主要是用两个简单的按钮实现音乐的播放和停止功能,工程的目录结构为
同时添加一个文件夹,里面放后缀为MP3的文件就可以了
在main配置文件主要是添加两个Button
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"
Android:orientation="vertical" Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<TextView Android:layout_width="fill_parent"
Android:layout_height="wrap_content" Android:text="音乐播放服务" />
<Button Android:id="@+id/startMusic" Android:layout_width="wrap_content"
Android:layout_height="wrap_content" Android:text="开启音乐播放服务" />
<Button Android:id="@+id/stopMusic" Android:layout_width="wrap_content"
Android:layout_height="wrap_content" Android:text="停止音乐播放服务" />
</LinearLayout>
添加一个activity类和一个service类AndroidManifest.xml配置文件为
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.basi"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MusicServiceActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".MusicService"></service>
</application>
</manifest>
创建一个MusicServiceActivity类启动service类
package com.basi;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MusicServiceActivity extends Activity {
private static String TAG = "MusicService";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast.makeText(this, "MusicServiceActivity", Toast.LENGTH_SHORT).show();
Log.e(TAG, "MusicServiceActivity");
initlizeViews();
}
private void initlizeViews() {
Button btnStart = (Button) findViewById(R.id.startMusic);
Button btnStop = (Button) findViewById(R.id.stopMusic);
OnClickListener ocl = new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MusicServiceActivity.this,
MusicService.class);
switch (v.getId()) {
case R.id.startMusic:
// 开始服务
startService(intent);
break;
case R.id.stopMusic:
// 停止服务
stopService(intent);
break;
}
}
};
btnStart.setOnClickListener(ocl);
btnStop.setOnClickListener(ocl);
}
}
service类代码为
package com.basi;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;
public class MusicService extends Service {
private static String TAG = "MusicService";
private MediaPlayer mPlayer;
@Override
public void onCreate() {
Toast.makeText(this, "MusicSevice onCreate()", Toast.LENGTH_SHORT)
.show();
Log.e(TAG, "MusicSerice onCreate()");
mPlayer = MediaPlayer.create(getApplicationContext(), R.raw.a);
// 设置可以重复播放
mPlayer.setLooping(true);
super.onCreate();
}
@Override
public void onStart(Intent intent, int startId) {
Toast.makeText(this, "MusicSevice onStart()", Toast.LENGTH_SHORT)
.show();
Log.e(TAG, "MusicSerice onStart()");
mPlayer.start();
super.onStart(intent, startId);
}
@Override
public void onDestroy() {
Toast.makeText(this, "MusicSevice onDestroy()", Toast.LENGTH_SHORT)
.show();
Log.e(TAG, "MusicSerice onDestroy()");
mPlayer.stop();
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
效果图为
[3] 施用JqueryMobile开发购物网站
来源: 互联网 发布时间: 2014-02-18
使用JqueryMobile开发购物网站
代码已发送
年初用了大约两周时间,使用JqueryMobile在现有系统上开发了手机版购物网站,在Safari上的运行截图如下:
(首页)
(商品列表)
(商品浏览)
(购物车)
(订单列表)
(订单详情)
(登录)
(搜索)
在移动开发领域,JqueryMobile虽起步较晚, 但表现却不俗,属于后起之秀,相信凭借jquery团队的精心打造,必将在移动开发领域流行起来。
1 楼
Ahua772
2011-11-18
楼主能不能共享你的源码,童鞋们太需要大量的例子了
2 楼
qingniu
2011-12-06
最近忙,一直没上来。有需要的朋友留mail吧,我发页面相关代码
3 楼
asokaxp
2011-12-13
最近正学习JqueryMobile,麻烦楼主发送相关代码到我邮箱draculaxp_at_163.com,在此非常感谢!!!
4 楼
qingniu
2011-12-23
asokaxp 写道
最近正学习JqueryMobile,麻烦楼主发送相关代码到我邮箱draculaxp_at_163.com,在此非常感谢!!!
代码已发送
最新技术文章: