41.TextView跑马灯效果
TextView中可以设置一个ellipsize属性,作用是当文字长度超过textview宽度时的显示方式:
例如,"encyclopedia"显示, 只是举例,以实际显示为准:)
android:ellipsize=”start”—–省略号显示在开头 "...pedia"
android:ellipsize=”end”——省略号显示在结尾 "encyc..."
android:ellipsize=”middle”—-省略号显示在中间 "en...dia"
android:ellipsize=”marquee”–以横向滚动方式显示(需获得当前焦点时)
对于使用marquee即滚动显示方式的,需要当前textview获得焦点才会滚动。所以有时可能因为实际需要,textview未获得焦点或者需要多个textview都同时滚动显示时,可以采用以下办法:
因为判断textview是否处于focused状态是通过它本身isFocused()方法,这样只要此方法返回为true时,即认为处于focused的状态,就可以滚动啦。
isFocused()方法来控制是否滚动咯
42.设置RadioGroup选中与没有选中时的颜色(背景色)或者是图片
首先新建一个res/下新建一个color的目录,新建一个radiogroup_selecked_bg.xm文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/conversion_item_bg_checked"/>
<item android:state_checked="false" android:color="@color/conversion_item_bg_unchecked"/>
</selector>
注意后面的@color必须在res/values/color.xml中定义好,不能直接写
ndroid:color = "#ffffff"这样写是不会有效果的
然后再RadioGroup中加入属性:android:background = "@color/radiogroup_selecked_bg(就是一开始建立的文件的名字)"
设置背景图片类似
43.ListView的分割线
android:divider="@color/conversion_item_divider"
android:dividerHeight="1dp"
//注意这两个要一起用,如果没有第二个,默认是0dp,即没有效果
android:cacheColorHint="#00000000" //设置拖动背景色为透明
android:dividerHeight="30px" //listview item之间的高度
android:divider="@drawable/ic_launcher" //listview item之间的背景或者说是颜色
android:fadingEdge="vertical" //上边和下边有黑色的阴影 值为none的话就没有阴影
android:scrollbars="horizontal|none" //只有值为horizontal|vertical的时候,才会显示滚动条,并且会自动影藏和显示
android:fastScrollEnabled="true" //快速滚动效果,配置这个属性,在快速滚动的时候旁边会出现一个小方块的快速滚动效果,自动隐藏和显示,
android:scrollbarStyle="outsideInset" //四个值的含义如下
1>outsideInset : 该ScrollBar显示在视图(view)的边缘,增加了view的padding. 如果可能的话,该ScrollBar仅仅覆盖这个view的背景.
2>outsideOverlay : 该ScrollBar显示在视图(view)的边缘,不增加view的padding,该ScrollBar将被半透明覆盖
3>insideInset :该ScrollBar显示在padding区域里面,增加了控件的padding区域,该ScrollBar不会和视图的内容重叠.
4>insideOverlay : 该ScrollBar显示在内容区域里面,不会增加了控件的padding区域,该ScrollBar以半透明的样式覆盖在视图(view)的内容上.
44.android 锁定横屏
xml文件中设置:
要实现这个目的,只需要在AndroidManifest.xml里声明Activity的时候加上一个属性:android:screenOrientation,属性取值landscape为固定横屏、portrait为固定纵屏幕。
代码:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE););//强制为横屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//竖屏
============延伸========
屏幕会自动切换时,默认状态的应用程序,会重新调用onCreate,相当于重新启动了一次应用程序。同时,layout可能因为横屏带来不能合理适配的问题。为了解决旋屏和键盘切换引起的程序重启问题,还需要增加一个属性:android:configChanges。这个属性可以理解为一个监听器,它将拦截旋屏和键盘切换事件,阻止程序重启而变为回调onConfigurationChanged方法。这里常用的属性取值为:keyboardHidden|orientation。
45.设置标志位1和-1,true和false
无需通过判断
if(flag){
flag = false;}
else{
flag = true;}
//只需要这样
flag = flag != true;
//同样,1和-1可以通过这样
i = i*-1;
46.设置button主动被点击
怎么触发onclicklistener呢?可以用这个方法:
button.perfromClick();
47.Intent跳转到另外一个应用的Activity
intent.setComponent(new ComponentName(
"要跳转的应用的包名",
"要跳转的应用的包名加类名"));
eg:
intent.setComponent(new ComponentName(
"com.siyehua.test.otherapp",
"com.siyehua.test.otherapp.SpaceActivity"));
同时:必须在目标的应用里设置Activity的Actioon和catoery
<activity
android:name="<span style="font-family: Arial, Helvetica, sans-serif;">com.siyehua.test.otherapp.SpaceActivity</span><span style="font-family: Arial, Helvetica, sans-serif;">"</span>>
<intent-filter>
<action android:name="com.siyehuazhilian.abc" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
48.检测手机里时候包含该应用
/**
* 检测手机时候包含应用
*/
private boolean getInstallFlag(String appPackageName) {
List<PackageInfo> list = getPackageManager().getInstalledPackages(
PackageManager.GET_PERMISSIONS);
for (PackageInfo packageInfo : list) {
if (packageInfo.packageName.equals(appPackageName)) {
return true;
}
}
Toast.makeText(this, "检测到您的手机不存在闪购客户端,现在为您跳转到应用商店下载", 1000).show();
Uri uri = Uri.parse("market://search?q=" + "闪购");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
return false;
}
49.在java代码中设置控件的大小和位置
GridView mGrid= (GridView) findViewById(R.id.gridview);
LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) mGrid.getLayoutParams(); // 取控件mGrid当前的布局参数
linearParams.height = 75;// 当控件的高强制设成75象素
mGrid.setLayoutParams(linearParams); // 使设置好的布局参数应用到控件mGrid2
比如
TextView mTextView = new TextView(context);
mTextView.setPadding(left, top, right, bottom);// 通过自定义坐标来放置你的控件
或者
TextView mTextView = new TextView(context);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)xxxx.getLayoutParams();
params.setMargins(left, top, right, bottom));// 通过自定义坐标来放置你的控件
mTextView .setLayoutParams(params);
注意LayoutParams可能是LinearLayout,也可能是RelativeLayout,要看当前控件的父控件是哪个
50.
Android中字体加粗
一、在xml文件中使用android:textStyle=”bold”
二、但是不能将中文设置成粗体,将中文设置成粗体的方法是:
|
51,刷新某个文件的uri
public static void scanPhotos(String filePath, Context context) {
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri uri = Uri.fromFile(new File(filePath));
intent.setData(uri);
context.sendBroadcast(intent);
}
52.设置对话框的位置Dialog
requestWindowFeature(Window.FEATURE_NO_TITLE);
DisplayMetrics display = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(display);
int width = display.widthPixels;
int height = display.heightPixels;
Window dialogWindow = this.getWindow();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.CENTER);
lp.width = width; // 宽度
lp.height = (int) (height * 0.6); // 高度
lp.x = 0; // 新位置X坐标
lp.y = lp.height; // 新位置Y坐标
dialogWindow.setAttributes(lp);
53.EditeText模仿输入法删除EditeText的文本
//动作按下
int action = KeyEvent.ACTION_DOWN;
//code:删除,其他code也可以,例如 code = 0
int code = KeyEvent.KEYCODE_DEL;
KeyEvent event = new KeyEvent(action, code);
searchEditText.onKeyDown(KeyEvent.KEYCODE_DEL, event); //抛给系统处理了
54.通过uri得到文件路径(文件属性)
// 保存选择的铃声Uri
Uri pickedUri = data
.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
String[] proj = { MediaStore.Audio.Media.DATA };
Cursor actualimagecursor = managedQuery(pickedUri, proj, null, null,
null);
int actual_image_column_index = actualimagecursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
actualimagecursor.moveToFirst();
String img_path = actualimagecursor
.getString(actual_image_column_index);
File file = new File(img_path);
57.打开系统铃声
// 打开系统铃声设置
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
// 设置铃声类型和title
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
RingtoneManager.TYPE_ALARM);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置闹铃铃声");
// 当设置完成之后返回到当前的Activity
startActivityForResult(intent, 10086);
58. 让ListView滚动到最底部
// msgListView是ListView控件
// adapter是ListView绑定的Adapter,如果不方便直接使用,也可以通过ListView的getAdapter()方法获取到,前提是你已经绑定了适配器哦
// 里面的参数就很熟悉了吧,其实这个方法的主要作用是选中listview的指定列,选中了,自然就得让这个item可见,自然就滚动咯
msgListView.setSelection(adapter.getCount()-1);
//还要必须设置selection为true
msgListView.selection(true);
还可以在ListView标签中加入如下两个属性,动态添加元素后,列表会自动滚动到底部:
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
59,限制EditText只能输入数字
小数请使用android:numeric="decimal" 属性
然后gettext后进行类型转换
其实还有很多办法解决。
可以添加TextChangedListener 监听器 进行字符判断。
android:digits 属性 输入规则
例如:android:digits=“0123456789” 表示只能输入数字。
android:digits=“0123456789.” 表示可以输入数字和小数点
60.EditText 的inputType详解
在开发的过程中,通常会用到EditText,如何让虚拟键盘来适应输入框中内容的类型,通常我们都会在xml文件中加入android:inputType=""。
android:inputType="none"android:inputType="text"android:inputType="textCapCharacters"//前3个输入普通字符android:inputType="textCapWords"//单词首字母大小
android:inputType="textCapSentences"//仅第一个字母大小
android:inputType="textAutoCorrect"android:inputType="textAutoComplete"//前两个自动完成
android:inputType="textMultiLine"//多行输入
android:inputType="textImeMultiLine"//输入法多行(不一定支持)
android:inputType="textNoSuggestions"//不提示
android:inputType="textUri"//URI格式
android:inputType="textEmailAddress"//电子邮件地址格式
android:inputType="textEmailSubject"//邮件主题格式
android:inputType="textShortMessage"//短消息格式
android:inputType="textLongMessage"android:inputType="textPersonName"//人名格式
android:inputType="textPostalAddress"//邮政格式
android:inputType="textPassword"//密码格式
android:inputType="textVisiblePassword"//密码可见格式
android:inputType="textWebEditText"//作为网页表单的文本格式
android:inputType="textFilter"//文本筛选格式
android:inputType="textPhonetic"//拼音输入格式
android:inputType="number"//数字格式
android:inputType="numberSigned"//有符号数字格式
android:inputType="numberDecimal"//可以带小数点的浮点格式
android:inputType="phone"//拨号键盘
android:inputType="datetime"android:inputType="date"//日期键盘
android:inputType="time"//时间键盘