Android开发小技巧1

小技巧

TextView上显示网址:增加属性android:autoLink=”all”

 

代码中更改TextView背景色:

Resources resources = getBaseContext().getResources();

Drawable hippoDrawable = resources.getDrawable(R.drwaable.white);

TextView tv = (TextView) findViewByID(R.id.text);

Tv.setBackground(hippoDrawable);

 

获取手机屏幕大小:

DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

//将高宽放入dm

dm.widthPixels  dm.heightPixels

 

可以指定样式,在组件中通过style=”@style/stylename”引用,样式放于res/values/style.xml中,格式:

<style name=””>

   <item name=”key”>value</item>

</style>

引申一步:变化主题也可以通过此种方式实现。将style写在文件中,调用setThem(R.style.name)即可生成。除了setThem外,还可以在AndroidManifext.xml文件中的activity中设置android:theme=””设置。

 

 

手机页面转换可以通过setContentView实现。如点击页面1按钮跳到页面2,则设置页面1按钮的点击事件时,通过setContentView引入页面2.

使用setContentView置换页面的优点是:所有程序中的变量皆存在相同的状态,无论是类变量、类函数,都在一个Activity中直接取得,并没有参数传递。

 

两个Activity之间的跳转通过Intent实现。如AB跳转,则需要将A注册在Androidmanifest.xml中:

<activity android:name=”A” 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时,执行A.finish(),则结束A;从B不能返回A

 

不同Intent通过Bundle传递参数,放入Intent.putExtras(bundle)

其他Intent通过this.getIntent.getExtras()得到Bundle

若要从Activity B返回数据到前一个Activity A,则需A调用startActivityForResult(intent,0),0B返回数据的依据,并重写onActivityResult()A收到result后执行操作。这里会有result_code作为2边数据标记,B需要this.setResult(RESULT_OK,intent);A需要case RESULT_OK

 

改变TextView的文本颜色setTextColor,文本大小setTextSize()、文本字体setTypeface(Typeface.createFromAsset(getAssets(),”fonts/字体.ttf”));assets文件夹建立fonts文件夹,存放各种字体文件。

 

拖动照片特效:Gallery

 

全屏幕以按钮重写很简单:即在代码中写一个按钮,添加到senContentView中,再添加点击事件即可。

 

Res/values/strings.xml中添加数组方法:

<array name=””>

  <item></item>

</array>

 

具有选择功能的对话框可以用AlertDialog嵌套DialogInterface实现。

 

EditText属性android:hint=””设置输入框默认文字

 

显示输入的密码:EditTextsetTransformationMethod()实现,正常显示样式获得:HideReturnsTransfromationMethod.getInstance(),隐藏输入字符:PasswordTransformationMethod.getInstance();

 

多语系支持:不同语系在res目录下建立不同后缀文件夹,如values/strings.xml表示中文,values-en/strings.xml表示英文。

还可以在程序中改变地区Local

Resources res = getResources();

Configration conf = res.getConfiguration();

Conf.local = Local.JAPAN;

DisplayMetris dm = res.getDisplayMetris();

//保存语系更改

Res.updateConfiguration(conf, dm);

 

判断手机OS版本是否允许允许应用程序:

If(getApplicationInfo().targetSdkVersion() <= Build.VERSION_CODES>GINGERBREAD)

AndroidManifext.xml中表述了允许程序的最低版本:

<uses-sdk android:minSdkVersion=”10”></uses-sdk>

 

关闭程序进程:

Android.os.Process.killProcess(android.os.Process.myPid());

 

2个不同应用程序彼此调用:

Inent.setClassName(“app package name”,” app package对应的Activity”);

传入Bundlekey app package对外公开。

 

指定安装应用程序迁移到SD卡:

点击按钮后,onclick方法实现:

Intent I =new Intent(“android.intent.action.MANAGE_PACKAGE_STROAGE”);

并在AndroidManifest.xmlmanifest标签下增加属性:

Android:installLocation=”prferExternal”

<uses-sdk android:minSdkVersion=”10” /> SDK2.2

 

手机状态Layout随手势物换迁移:ViewFipper左右滑动事件,实现onTouchEvent方法

 

EditText有一个键盘监听事件setOnKeyListener(new EditText.OnKeyListener(){})

 

Toast是一个简短的小信息,将要告诉用户的信息以一个浮动在最上层的View显示,显示Toast后,静待几秒会消失,常见的是音量大小的调整。通过Toast特性,可以在不影响用户通话或听音乐的情况下,显示给用户消息。对于程序员来说,还是Debug的工具。

Toast.makeText(当前类.this,”文本”,Toast.LENGTH_LONG)最后一个参数是时间长短。

也可以自定义ToasT对象:Toast toast = new Toast(this);

ImageVIew iv =new ImageView(this);

iv.setImageResource(R.drawable.XX);

toast.setView(iv);

toast.show();

 

按钮设置可否点击setEnable(true or false)

猜你喜欢

转载自aoyouzi.iteye.com/blog/1981801