当前位置: 编程技术>移动开发
本页文章导读:
▪onActivityResult传值的应用 onActivityResult传值的使用
有时候在群里加入的新人总会喜欢问一些过去的问题 有时候不想回答 是因为回答的次数多了不回答又打击人的积极性 谁让自己接触的早呢 为了省劲还是把简.........
▪ 第三章: 设立手机背景图片 第三章: 设置手机背景图片
效果:main.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.andr.........
▪ Mobileup 的地心引力传感器控制 Mobileup 的重力传感器控制
Mobileup 的简单demo程序可以传送重力传感器数据, 就如同游戏中可以用手机的传感器控制html5页面的元素了, 很好玩. 下一步是给demo写个若干小球控制的html5页面.demo .........
[1]onActivityResult传值的应用
来源: 互联网 发布时间: 2014-02-18
onActivityResult传值的使用
有时候在群里加入的新人总会喜欢问一些过去的问题 有时候不想回答 是因为回答的次数多了
不回答又打击人的积极性 谁让自己接触的早呢 为了省劲还是把简单的东西作为指导篇吧
多个activity之间的传值 其实就是onActivityResult,然后别忘了还有一个action的问题 就是在主xml中添加自己的action以便于识别,最后次activity别忘了finish()。
后面的step2 step3都是一样的了
然后还有主xml
======================================================================
根据文档的解释,Activity是Android开发中非常重要的一个基础类。我把它想像成J2ME中的Display类,或者是Win32平台上的Form类,也许不准确,但是它的重要性我觉得应该是一样的(当然,如果我们写的是一个没有界面的应用,例如后台运行的服务之类的,可以不用Display的)。
1. 在一个Activity中使用多个View
如果把Activity看作MVC中的Control?它负责管理UI和接受事件(包括用户的输入),虽然说一个Activity通常对应一个屏幕,但事实上,我们是可以只用一个Activity管理多个不同的View来实现简单的逻辑。
首先,我们增加一个新的资源描述layout/second.xml。
<?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 id="@+id/txt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello 中国"
/>
<Button id="@+id/go2"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="back">
<requestFocus />
</Button>
</LinearLayout>
除了一个“Hello中国”以外,增加一个按钮可以返回前一个界面。然后,在代码中我们要为helloTwo增加两个方法,setViewOneCommand和setViewTwoCommand,分别处理一下在不同界面时,从资源里加载组件并为组件绑定一个事件处理器。
public void setViewOneCommand()
...{
Button btn = (Button)findViewById(R.id.go);
btn.setOnClickListener(new View.OnClickListener()
...{
public void onClick(View v)
...{
helloTwo.this.setContentView(R.layout.second);
helloTwo.this.setViewTwoCommand();
}
});
Button btnExit=(Button)findViewById(R.id.exit);
btnExit.setOnClickListener(new View.OnClickListener()...{
public void onClick(View v)...{
helloTwo.this.finish();
}
});
}
public void setViewTwoCommand()
...{
Button btnBack=(Button)findViewById(R.id.go2);
btnBack.setOnClickListener(new View.OnClickListener()...{
public void onClick(View v)...{
helloTwo.this.setContentView(R.layout.main);
helloTwo.this.setViewOneCommand();
}
});
}
最后,我们需要在onCreate的时候,也就是启动后的main界面上设置一下按钮事件处理器。新的onCreate方法如下:
public void onCreate(Bundle icicle) ...{
super.onCreate(icicle);
setTheme(android.R.style.Theme_Dark);
setContentView(R.layout.main);
setViewOneCommand();
}
编译,运行,OK。
2. 还是回到正道上,多个Activity之间的跳转
Android中提供一个叫Intent的类来实现屏幕之间的跳转,按文档的说法,似乎他们也建议采用这种方法,Intent的用法比较复杂,现在我先看看它最简单的用法。
先在应用中增加两个Activity,这需要修改AndroidManifest.xml文件了,如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.sharetop.android.hello.three">
<application android:icon="@drawable/icon">
<activity android:label="@string/app_name">
<intent-filter>
<action android:value="android.intent.action.MAIN" />
<category android:value="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:label="@string/app_name">
</activity>
</application>
</manifest>
很简单,就是加一个标签而已,新标签的class是.HelloThreeB,显示的应用标题与前一个Activity一样而已,然后第二步就是修改一个HelloThree类的实现,在onCreate方法中绑定按钮的事件处理器:
public void onCreate(Bundle icicle) ...{
super.onCreate(icicle);
setTheme(android.R.style.Theme_Dark);
setContentView(R.layout.main);
setViewOneCommand();
}
public void setViewOneCommand()
...{
Button btn = (Button)findViewById(R.id.go);
btn.setOnClickListener(new View.OnClickListener()
...{
public void onClick(View v)
...{
Intent intent = new Intent();
intent.setClass(HelloThree.this, HelloThreeB.class);
startActivity(intent);
finish();
}
});
Button btnExit=(Button)findViewById(R.id.exit);
btnExit.setOnClickListener(new View.OnClickListener()...{
public void onClick(View v)...{
HelloThree.this.finish();
}
});
}
这里的跳转功能用Intent来操作,它的最简单用法就是用函数setClass()设置跳转前后两个Activity类的实例,然后调用Activity自己的startActivity(intent)即可。最后一句finish()表示将当前Activity关掉(如果不关掉会如何?你可以自己试一下看效果,事实上有时我们是不需要关掉当前Activity的)。
然后,我们同样弄一个Activity类HelloThreeB,代码与前面的差不多,只是将setClass的两个参数反一下,这样就可以简单地实现在两个Activity界面中来回切换的功能了。
3. 如果我想在两个Activity之间进行数据交换,怎么办?
前例中的startActivity()只有一个参数,如果需要向新打开的Activity传递参数,我们得换一个函数了, Android提供了startSubActivity(Intent,int)这个函数来实现这个功能。
函数原型为: public void startSubActivity(Intent intent, int requestCode)
这里的requestCode用来标识某一个调用,一般由我们定义一个常量。
如何把参数传过去呢?Intent类在提供setClass()函数的同时也提供了一个setData()函数。
函数原型为:public Intent setData(ContentURI data)
参数类型是ContentURI,它的详细内容下回再分析,现在就把它当成一个String类型来用吧。
参数带到新的Activity后,同样用Activity.getIntent()函数可以得到当前过来的Intent对象,然后用getData()就取到参数了。
把参数带回来的方法是Activity.setResult(),它有几个形式,现在先看最简单的一个吧。
函数原型是:public final void setResult(int resultCode, String data)
resultCode是返回代码,同样用来标识一个返回类型,而data则是它要返回的参数。
在原来的Activity中的事件处理回调函数onActivityResult,会被系统调用,从它的参数里可以得到返回值。
函数原型为:protected void onActivityResult(int requestCode, int resultCode,String data, Bundle extras)
这里的requestCode就是前面启动新Activity时的带过去的requestCode,而resultCode则关联上了setResult中的resultCode,data是参数,extras也是一个很重要的东西,后面再研究一下它的作用。
下面,我们来看一下代码吧,先看看HelloThree中的代码:
public void setViewOneCommand()
...{
Button btn = (Button)findViewById(R.id.go);
btn.setOnClickListener(new View.OnClickListener()
...{
public void onClick(View v)
...{
try
...{
Intent intent = new Intent();
intent.setClass(HelloThree.this, HelloThreeB.class);
intent.setData(new ContentURI("One"));
startSubActivity(intent,REQUEST_TYPE_A);
}
catch(Exception ex)...{}
}
});
Button btnExit=(Button)findViewById(R.id.exit);
btnExit.setOnClickListener(new View.OnClickListener()...{
public void onClick(View v)...{
HelloThree.this.finish();
}
});
}
protected void onActivityResult(int requestCode, int resultCode,
String data, Bundle extras)
...{
if (requestCode == REQUEST_TYPE_A) ...{
if (resultCode == RESULT_OK) ...{
Log.v(TAG,data);
TextView txt = (TextView)findViewById(R.id.txt);
txt.setText(data);
}
}
}
这里的REQUEST_TYPE_A是我们定义的一个常量。在onActivityResult中用它与RESULT_OK一起作为条件判断如何处理返回值,这里只是简单将TextView显示值换成传来的字串。
再来看看另一个HelloThreeB类的实现代码:
private Intent i;
protected void onCreate(Bundle icicle) ...{
super.onCreate(icicle);
setContentView(R.layout.second);
i = getIntent();
android.util.Log.v(TAG,"onCreate");
Button btn = (Button)findViewById(R.id.go);
btn.setOnClickListener(new View.OnClickListener()...{
public void onClick(View v)...{
String result=HelloThreeB.this.i.getData().toString()+" And Two";
HelloThreeB.this.setResult(RESULT_OK,result);
finish();
}
});
TextView v = (TextView)findViewById(R.id.txt);
v.setText("Param is "+i.getData().toString());
}
在按钮处理事件中,从Intent取出参数,处理一下再用setResult返回给前一个Activity即可。
编译运行即可。
来源:http://www.sf.org.cn/Android/lumen/20977.html
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ghd2000/archive/2010/07/06/5716894.aspx
有时候在群里加入的新人总会喜欢问一些过去的问题 有时候不想回答 是因为回答的次数多了
不回答又打击人的积极性 谁让自己接触的早呢 为了省劲还是把简单的东西作为指导篇吧
多个activity之间的传值 其实就是onActivityResult,然后别忘了还有一个action的问题 就是在主xml中添加自己的action以便于识别,最后次activity别忘了finish()。
public class Wizard extends Activity {
private TextView step1result, step2result, step3result;
public static final String INTENT_STEP1 = "com.novoda.STEP1";
public static final String INTENT_STEP2 = "com.novoda.STEP2";
public static final String INTENT_STEP3 = "com.novoda.STEP3";
private static final int STEP1 = 1;
private static final int STEP2 = 2;
private static final int STEP3 = 3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wizard);
this.step1result = (TextView)findViewById(R.id.step1result);
this.step2result = (TextView)findViewById(R.id.step2result);
this.step3result = (TextView)findViewById(R.id.step3result);
startActivityForResult(new Intent(Wizard.INTENT_STEP1), STEP1);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case STEP1:
this.step1result.setText(data.getStringExtra("STEP1RESULT"));
startActivityForResult(new Intent(Wizard.INTENT_STEP2), STEP2);
break;
case STEP2:
this.step2result.setText(data.getStringExtra("STEP2RESULT"));
startActivityForResult(new Intent(Wizard.INTENT_STEP3), STEP3);
break;
case STEP3:
this.step3result.setText(data.getStringExtra("STEP3RESULT"));
break;
}
}
}
public class Step1 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.step1);
Button nextStep = (Button)findViewById(R.id.goto2);
nextStep.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent it = new Intent();
it.putExtra("STEP1RESULT", ((EditText)findViewById(R.id.step1value)).getText()
.toString());
setResult(Activity.RESULT_OK, it);
finish();
}
});
}
}
后面的step2 step3都是一样的了
然后还有主xml
<application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Wizard" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Step1" android:label="Step1"> <intent-filter> <action android:name="com.novoda.STEP1" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <activity android:name=".Step2" android:label="Step2"> <intent-filter> <action android:name="com.novoda.STEP2" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <activity android:name=".Step3" android:label="Step3"> <intent-filter> <action android:name="com.novoda.STEP3" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="7" /> </manifest>
======================================================================
根据文档的解释,Activity是Android开发中非常重要的一个基础类。我把它想像成J2ME中的Display类,或者是Win32平台上的Form类,也许不准确,但是它的重要性我觉得应该是一样的(当然,如果我们写的是一个没有界面的应用,例如后台运行的服务之类的,可以不用Display的)。
1. 在一个Activity中使用多个View
如果把Activity看作MVC中的Control?它负责管理UI和接受事件(包括用户的输入),虽然说一个Activity通常对应一个屏幕,但事实上,我们是可以只用一个Activity管理多个不同的View来实现简单的逻辑。
首先,我们增加一个新的资源描述layout/second.xml。
<?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 id="@+id/txt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello 中国"
/>
<Button id="@+id/go2"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="back">
<requestFocus />
</Button>
</LinearLayout>
除了一个“Hello中国”以外,增加一个按钮可以返回前一个界面。然后,在代码中我们要为helloTwo增加两个方法,setViewOneCommand和setViewTwoCommand,分别处理一下在不同界面时,从资源里加载组件并为组件绑定一个事件处理器。
public void setViewOneCommand()
...{
Button btn = (Button)findViewById(R.id.go);
btn.setOnClickListener(new View.OnClickListener()
...{
public void onClick(View v)
...{
helloTwo.this.setContentView(R.layout.second);
helloTwo.this.setViewTwoCommand();
}
});
Button btnExit=(Button)findViewById(R.id.exit);
btnExit.setOnClickListener(new View.OnClickListener()...{
public void onClick(View v)...{
helloTwo.this.finish();
}
});
}
public void setViewTwoCommand()
...{
Button btnBack=(Button)findViewById(R.id.go2);
btnBack.setOnClickListener(new View.OnClickListener()...{
public void onClick(View v)...{
helloTwo.this.setContentView(R.layout.main);
helloTwo.this.setViewOneCommand();
}
});
}
最后,我们需要在onCreate的时候,也就是启动后的main界面上设置一下按钮事件处理器。新的onCreate方法如下:
public void onCreate(Bundle icicle) ...{
super.onCreate(icicle);
setTheme(android.R.style.Theme_Dark);
setContentView(R.layout.main);
setViewOneCommand();
}
编译,运行,OK。
2. 还是回到正道上,多个Activity之间的跳转
Android中提供一个叫Intent的类来实现屏幕之间的跳转,按文档的说法,似乎他们也建议采用这种方法,Intent的用法比较复杂,现在我先看看它最简单的用法。
先在应用中增加两个Activity,这需要修改AndroidManifest.xml文件了,如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.sharetop.android.hello.three">
<application android:icon="@drawable/icon">
<activity android:label="@string/app_name">
<intent-filter>
<action android:value="android.intent.action.MAIN" />
<category android:value="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:label="@string/app_name">
</activity>
</application>
</manifest>
很简单,就是加一个标签而已,新标签的class是.HelloThreeB,显示的应用标题与前一个Activity一样而已,然后第二步就是修改一个HelloThree类的实现,在onCreate方法中绑定按钮的事件处理器:
public void onCreate(Bundle icicle) ...{
super.onCreate(icicle);
setTheme(android.R.style.Theme_Dark);
setContentView(R.layout.main);
setViewOneCommand();
}
public void setViewOneCommand()
...{
Button btn = (Button)findViewById(R.id.go);
btn.setOnClickListener(new View.OnClickListener()
...{
public void onClick(View v)
...{
Intent intent = new Intent();
intent.setClass(HelloThree.this, HelloThreeB.class);
startActivity(intent);
finish();
}
});
Button btnExit=(Button)findViewById(R.id.exit);
btnExit.setOnClickListener(new View.OnClickListener()...{
public void onClick(View v)...{
HelloThree.this.finish();
}
});
}
这里的跳转功能用Intent来操作,它的最简单用法就是用函数setClass()设置跳转前后两个Activity类的实例,然后调用Activity自己的startActivity(intent)即可。最后一句finish()表示将当前Activity关掉(如果不关掉会如何?你可以自己试一下看效果,事实上有时我们是不需要关掉当前Activity的)。
然后,我们同样弄一个Activity类HelloThreeB,代码与前面的差不多,只是将setClass的两个参数反一下,这样就可以简单地实现在两个Activity界面中来回切换的功能了。
3. 如果我想在两个Activity之间进行数据交换,怎么办?
前例中的startActivity()只有一个参数,如果需要向新打开的Activity传递参数,我们得换一个函数了, Android提供了startSubActivity(Intent,int)这个函数来实现这个功能。
函数原型为: public void startSubActivity(Intent intent, int requestCode)
这里的requestCode用来标识某一个调用,一般由我们定义一个常量。
如何把参数传过去呢?Intent类在提供setClass()函数的同时也提供了一个setData()函数。
函数原型为:public Intent setData(ContentURI data)
参数类型是ContentURI,它的详细内容下回再分析,现在就把它当成一个String类型来用吧。
参数带到新的Activity后,同样用Activity.getIntent()函数可以得到当前过来的Intent对象,然后用getData()就取到参数了。
把参数带回来的方法是Activity.setResult(),它有几个形式,现在先看最简单的一个吧。
函数原型是:public final void setResult(int resultCode, String data)
resultCode是返回代码,同样用来标识一个返回类型,而data则是它要返回的参数。
在原来的Activity中的事件处理回调函数onActivityResult,会被系统调用,从它的参数里可以得到返回值。
函数原型为:protected void onActivityResult(int requestCode, int resultCode,String data, Bundle extras)
这里的requestCode就是前面启动新Activity时的带过去的requestCode,而resultCode则关联上了setResult中的resultCode,data是参数,extras也是一个很重要的东西,后面再研究一下它的作用。
下面,我们来看一下代码吧,先看看HelloThree中的代码:
public void setViewOneCommand()
...{
Button btn = (Button)findViewById(R.id.go);
btn.setOnClickListener(new View.OnClickListener()
...{
public void onClick(View v)
...{
try
...{
Intent intent = new Intent();
intent.setClass(HelloThree.this, HelloThreeB.class);
intent.setData(new ContentURI("One"));
startSubActivity(intent,REQUEST_TYPE_A);
}
catch(Exception ex)...{}
}
});
Button btnExit=(Button)findViewById(R.id.exit);
btnExit.setOnClickListener(new View.OnClickListener()...{
public void onClick(View v)...{
HelloThree.this.finish();
}
});
}
protected void onActivityResult(int requestCode, int resultCode,
String data, Bundle extras)
...{
if (requestCode == REQUEST_TYPE_A) ...{
if (resultCode == RESULT_OK) ...{
Log.v(TAG,data);
TextView txt = (TextView)findViewById(R.id.txt);
txt.setText(data);
}
}
}
这里的REQUEST_TYPE_A是我们定义的一个常量。在onActivityResult中用它与RESULT_OK一起作为条件判断如何处理返回值,这里只是简单将TextView显示值换成传来的字串。
再来看看另一个HelloThreeB类的实现代码:
private Intent i;
protected void onCreate(Bundle icicle) ...{
super.onCreate(icicle);
setContentView(R.layout.second);
i = getIntent();
android.util.Log.v(TAG,"onCreate");
Button btn = (Button)findViewById(R.id.go);
btn.setOnClickListener(new View.OnClickListener()...{
public void onClick(View v)...{
String result=HelloThreeB.this.i.getData().toString()+" And Two";
HelloThreeB.this.setResult(RESULT_OK,result);
finish();
}
});
TextView v = (TextView)findViewById(R.id.txt);
v.setText("Param is "+i.getData().toString());
}
在按钮处理事件中,从Intent取出参数,处理一下再用setResult返回给前一个Activity即可。
编译运行即可。
来源:http://www.sf.org.cn/Android/lumen/20977.html
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ghd2000/archive/2010/07/06/5716894.aspx
[2] 第三章: 设立手机背景图片
来源: 互联网 发布时间: 2014-02-18
第三章: 设置手机背景图片
效果:
main.xml
AndroidManifest.xml
效果:
main.xml
<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" > <Gallery android:id="@+id/gall" android:layout_width="320px" android:layout_height="429px" android:layout_x="0px" android:layout_y="2px" > </Gallery> </AbsoluteLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="wallpaper.test"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".WallpaperTest"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>
</manifest>
package wallpaper.test;
import java.io.IOException;
import java.io.InputStream;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Gallery;
import android.widget.SpinnerAdapter;
import android.widget.Toast;
public class WallpaperTest extends Activity {
protected static InputStream io;
private ImageAdapter myImage;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/** 载入main.xml文件 */
setContentView(R.layout.main);
/** 设置一组图片*/
Integer[] myImageIde={
R.drawable.pic01,
R.drawable.pic02,
R.drawable.pic03,
R.drawable.pic04,
R.drawable.pic05
};
myImage=new ImageAdapter(WallpaperTest.this,myImageIde);
/** 设置图为Gallery的显示方式*/
Gallery g=(Gallery)findViewById(R.id.gall);
g.setAdapter((SpinnerAdapter) myImage);
g.setOnItemClickListener(new Gallery.OnItemClickListener(){
/** 设置ITEM的点击事件*/
@Override
public void onItemClick(AdapterView<?> parent, View v, final int position,
long id) {
/**设置 消息框*/
new AlertDialog.Builder(WallpaperTest.this)
/** 设置消息框的标题*/
.setTitle(R.string.alert_title)
/** 设置标题框的图片*/
.setIcon(myImage.myImageIds[position])
/** 设置消息框体的文本*/
.setMessage(R.string.alert_message)
/** 设置点击确定按钮的事件*/
.setPositiveButton(R.string.alert_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Resources resources=getBaseContext().getResources();
io=resources.openRawResource(myImage.myImageIds[position]);
try {
/** 更换桌面*/
setWallpaper(io);
/** 设置Toast的消息*/
Toast.makeText(WallpaperTest.this,getString(R.string.alert_isgllery), Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
}
}
/** 设置点击取消按钮的事件*/
}).setNegativeButton(R.string.alert_cancle, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
/** 设置Toast的消息*/
Toast.makeText(WallpaperTest.this, getString(R.string.alert_no), Toast.LENGTH_LONG).show();
}
}).show();
}
});
}
@Override
public void setWallpaper(InputStream data) throws IOException {
super.setWallpaper(data);
}
}
package wallpaper.test;
import android.content.Context;
import android.content.res.TypedArray;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
public class ImageAdapter extends BaseAdapter{
int mGalleryBackground;
private Context context;
protected Integer[] myImageIds;
public ImageAdapter(Context c,Integer[] aid){
context=c;
myImageIds=aid;
/** 设置背景图片*/
TypedArray a=c.obtainStyledAttributes(R.styleable.Gallery);
mGalleryBackground=a.getResourceId(R.styleable.Gallery_android_galleryItemBackground, 0);
a.recycle();
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return myImageIds.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i =new ImageView(context);
/** 设置背景图片给ImageView*/
i.setImageResource(myImageIds[position]);
/**图片的高和宽*/
i.setScaleType(ImageView.ScaleType.FIT_XY);
/**设置Gallery的背景图*/
i.setBackgroundResource(mGalleryBackground);
return i;
}
}
1 楼
chenghaozuibang
2011-07-13
图片可以设为背景,但是大小不对啊 不能全屏显示呀
[3] Mobileup 的地心引力传感器控制
来源: 互联网 发布时间: 2014-02-18
Mobileup 的重力传感器控制
Mobileup 的简单demo程序可以传送重力传感器数据, 就如同游戏中可以用手机的传感器控制html5页面的元素了, 很好玩.
下一步是给demo写个若干小球控制的html5页面.
demo APK 文件可以在https://github.com/superisaac/mobileup/downloads 下载
Mobileup 的简单demo程序可以传送重力传感器数据, 就如同游戏中可以用手机的传感器控制html5页面的元素了, 很好玩.
下一步是给demo写个若干小球控制的html5页面.
demo APK 文件可以在https://github.com/superisaac/mobileup/downloads 下载
最新技术文章: