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”


 


二、但是不能将中文设置成粗体,将中文设置成粗体的方法是: 


TextView tv = (TextView)findViewById(R.id.TextView01); 
TextPaint tp = tv.getPaint(); 
tp.setFakeBoldText(true);





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"//时间键盘