展会信息港展会大全

自定义在两种屏幕尺寸中使用spinner android开发教程
来源:互联网   发布日期:2015-10-02 15:57:09   浏览:1490次  

导读:spinner就是可以点击的TextView,完全可以使用TextView,使用适当的背景,做出下拉框,其实更方便,如果使用spinner这个组件,可以分别定义,写了个Demo,spinner不好看,可以换背景图片,代码如下: 1.首先And......

spinner就是可以点击的TextView,完全可以使用TextView,使用适当的背景,做出下拉框,其实更方便,如果使用spinner这个组件,可以分别定义,写了个Demo,spinner不好看,可以换背景图片,代码如下:

1.首先AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.testspinnertext"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="15" />

<supports-screens

android:largeScreens="true"

android:normalScreens="true"

android:anyDensity="true"/>

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name=".MainActivity"

android:label="@string/title_activity_main" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>

2.res目录下,建立分别建立layout(原来就已经存在的)和layout-large,这个两个文件夹下的文件其实是一样的,只是要改的布局和尺寸等

1).layout中的文件

activity_main.xml中:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent" >

<Spinner

android:id="@+id/spinner"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:prompt="@string/hello_world"/>

</LinearLayout>

spinner_style.xml中

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textColor="#0000FF"

android:padding="10dip"

android:id="@+id/cit_spinner_item"

android:textSize="15dp">

</TextView>

2).layout-large.xml中的文件

activity_main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent" >

<Spinner

android:id="@+id/spinner"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:prompt="@string/hello_world"/>

</LinearLayout>

spinner_style.xml中

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textColor="#0000FF"

android:padding="10dip"

android:id="@+id/cit_spinner_item"

android:textSize="25dp">

</TextView>

3.src目录下,要建立2个不同的适配器,具体代码如下:

1)MJSimpleSpinnerAdapter类中

package com.example.testspinnertext;

import android.content.Context;

import android.graphics.Color;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ArrayAdapter;

import android.widget.TextView;

public class MJSimpleSpinnerAdapter extends ArrayAdapter<String>{

Context context;

String[] items = new String[]{};

public MJSimpleSpinnerAdapter(Context context, int textViewResourceId,

String[] objects) {

super(context, textViewResourceId, objects);

// TODO Auto-generated constructor stub

this.context = context;

this.items = objects;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

// TODO Auto-generated method stub

if(convertView == null){

LayoutInflater inflater = LayoutInflater.from(context);

convertView = inflater.inflate(android.R.layout.simple_spinner_item, parent,false);

}

TextView text = (TextView)convertView.findViewById(android.R.id.text1);

text.setText(items[position]);

text.setTextColor(Color.BLUE);

text.setTextSize(10);

return convertView;

}

}

复制到这里的面板后,格式好难看。

2).MJLargeSpinnerAdapter类中

package com.example.testspinnertext;

import android.content.Context;

import android.graphics.Color;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ArrayAdapter;

import android.widget.TextView;

public class MJLargeSpinnerAdapter extends ArrayAdapter<String>{

/**

* @param args

*/

Context context;

String[] items = new String[]{};

public MJLargeSpinnerAdapter(Context context, int textViewResourceId,

String[] objects) {

super(context, textViewResourceId, objects);

// TODO Auto-generated constructor stub

this.context = context;

this.items = objects;

}

public View getView(int position, View convertView, ViewGroup parent) {

// TODO Auto-generated method stub

if(convertView == null){

LayoutInflater inflater = LayoutInflater.from(context);

convertView = inflater.inflate(android.R.layout.simple_spinner_item, parent,false);

}

TextView text = (TextView)convertView.findViewById(android.R.id.text1);

text.setText(items[position]);

text.setTextColor(Color.RED);

text.setTextSize(25);

return convertView;

}

}

3).MainActivity类中

package com.example.testspinnertext;

import android.os.Bundle;

import android.app.Activity;

import android.util.DisplayMetrics;

import android.util.Log;

import android.widget.Spinner;

public class MainActivity extends Activity {

String[] str = {"选项一","选项二","选项三","选项四"};

Spinner spinner;

private int width = 0;

private int height = 0;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

spinner = (Spinner)findViewById(R.id.spinner);

//根据屏幕的宽和高来决定spinner中显示的字体的样式等(不是spinner的下拉框中的字体)

DisplayMetrics dm = new DisplayMetrics();

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

width = dm.widthPixels;

height = dm.heightPixels;

Log.i("宽高", width+","+height);

//MJSimpleSpinnerAdapter adapter = new MJSimpleSpinnerAdapter(MainActivity.this,

//android.R.layout.simple_spinner_item, str);

//spinner.setAdapter(adapter);

if(width<=500&&height<=800){

MJSimpleSpinnerAdapter adapter = new MJSimpleSpinnerAdapter(MainActivity.this,

android.R.layout.simple_spinner_item, str);

adapter.setDropDownViewResource(R.layout.spinner_style);

spinner.setAdapter(adapter);

}else {

MJLargeSpinnerAdapter adapter = new MJLargeSpinnerAdapter(MainActivity.this,

android.R.layout.simple_spinner_item, str);

adapter.setDropDownViewResource(R.layout.spinner_style);

spinner.setAdapter(adapter);

}

}

}

到这里,这个Demo就完成了,程序很小,只是个小例子,可以扩展使用,

赞助本站

人工智能实验室

相关热词: 屏幕尺寸 spinner

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港