首页

android 按照拼音搜索全国城市,实现字母导航例子(含中国城市列表sqlite数据库下载)

java

2020-7-30

全国城市 sqlite数据库在这个目录 res/raw/china_city 

package com.city.list.main;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.text.style.TypefaceSpan;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

public class MyLetterListView extends View
{

	OnTouchingLetterChangedListener onTouchingLetterChangedListener;
	String[] b = { "#", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
	int choose = -1;
	Paint paint = new Paint();
	boolean showBkg = false;

	public MyLetterListView(Context context, AttributeSet attrs, int defStyle)
	{
		super(context, attrs, defStyle);
	}

	public MyLetterListView(Context context, AttributeSet attrs)
	{
		super(context, attrs);
	}

	public MyLetterListView(Context context)
	{
		super(context);
	}

	@Override
	protected void onDraw(Canvas canvas)
	{
		super.onDraw(canvas);
		if (showBkg)
		{
			canvas.drawColor(Color.parseColor("#40000000"));
		}

		int height = getHeight();
		int width = getWidth();
		int singleHeight = height / b.length;
		for (int i = 0; i < b.length; i  )
		{
			paint.setColor(Color.WHITE);
			paint.setTypeface(Typeface.DEFAULT_BOLD);
			paint.setAntiAlias(true);
			paint.setTextSize(25);
			if (i == choose)
			{
				paint.setColor(Color.parseColor("#3399ff"));
				paint.setFakeBoldText(true);
			}
			float xPos = width / 2 - paint.measureText(b[i]) / 2;
			float yPos = singleHeight * i   singleHeight;
			canvas.drawText(b[i], xPos, yPos, paint);
			paint.reset();
		}

	}

	@Override
	public boolean dispatchTouchEvent(MotionEvent event)
	{
		final int action = event.getAction();
		final float y = event.getY();
		final int oldChoose = choose;
		final OnTouchingLetterChangedListener listener = onTouchingLetterChangedListener;
		final int c = (int) (y / getHeight() * b.length);

		switch (action) {
		case MotionEvent.ACTION_DOWN:
			showBkg = true;
			if (oldChoose != c && listener != null)
			{
				if (c > 0 && c < b.length)
				{
					listener.onTouchingLetterChanged(b[c]);
					choose = c;
					invalidate();
				}
			}

			break;
		case MotionEvent.ACTION_MOVE:
			if (oldChoose != c && listener != null)
			{
				if (c > 0 && c < b.length)
				{
					listener.onTouchingLetterChanged(b[c]);
					choose = c;
					invalidate();
				}
			}
			break;
		case MotionEvent.ACTION_UP:
			showBkg = false;
			choose = -1;
			invalidate();
			break;
		}
		return true;
	}

	@Override
	public boolean onTouchEvent(MotionEvent event)
	{
		return super.onTouchEvent(event);
	}

	public void setOnTouchingLetterChangedListener(OnTouchingLetterChangedListener onTouchingLetterChangedListener)
	{
		this.onTouchingLetterChangedListener = onTouchingLetterChangedListener;
	}

	public interface OnTouchingLetterChangedListener
	{
		public void onTouchingLetterChanged(String s);
	}

}
资源下载此资源下载价格为2D币(VIP免费),请先
资源文件列表
城市列表-城市汉字搜索和拼音搜索/CityList/.classpath , 364
城市列表-城市汉字搜索和拼音搜索/CityList/.project , 844
城市列表-城市汉字搜索和拼音搜索/CityList/AndroidManifest.xml , 783
城市列表-城市汉字搜索和拼音搜索/CityList/bin/AndroidManifest.xml , 783
城市列表-城市汉字搜索和拼音搜索/CityList/bin/CityList.apk , 180700
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/db/DBManager.class , 2882
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/BuildConfig.class , 345
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/CityList$1.class , 1492
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/CityList$CityListOnItemClick.class , 1697
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/CityList$LetterListViewListener.class , 2147
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/CityList$ListAdapter$ViewHolder.class , 820
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/CityList$ListAdapter.class , 3635
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/CityList$OverlayThread.class , 881
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/CityList.class , 9154
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/CityModel.class , 768
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/MainActivity$1.class , 968
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/MainActivity.class , 964
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/MyLetterListView$OnTouchingLetterChangedListener.class , 328
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/MyLetterListView.class , 4246
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/R$attr.class , 340
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/R$drawable.class , 448
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/R$id.class , 702
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/R$layout.class , 491
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/R$raw.class , 430
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/R$string.class , 427
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes/com/city/list/main/R.class , 575
城市列表-城市汉字搜索和拼音搜索/CityList/bin/classes.dex , 126516
城市列表-城市汉字搜索和拼音搜索/CityList/bin/dexedLibs/annotations-e51552d4fbe0d7bd5d4bb1349e013f21.jar , 943
城市列表-城市汉字搜索和拼音搜索/CityList/bin/dexedLibs/pinyin4j-2.5.0-fdf3ee9170577e2fa5c58abcf6459ba4.jar , 144643
城市列表-城市汉字搜索和拼音搜索/CityList/bin/jarlist.cache , 119
城市列表-城市汉字搜索和拼音搜索/CityList/bin/res/drawable-hdpi/contact_list_icon.png , 2330
城市列表-城市汉字搜索和拼音搜索/CityList/bin/res/drawable-hdpi/ic_launcher.png , 3966
城市列表-城市汉字搜索和拼音搜索/CityList/bin/res/drawable-ldpi/ic_launcher.png , 1537
城市列表-城市汉字搜索和拼音搜索/CityList/bin/res/drawable-mdpi/ic_launcher.png , 2200
城市列表-城市汉字搜索和拼音搜索/CityList/bin/resources.ap_ , 26974
城市列表-城市汉字搜索和拼音搜索/CityList/gen/com/city/list/main/BuildConfig.java , 160
城市列表-城市汉字搜索和拼音搜索/CityList/gen/com/city/list/main/R.java , 1667
城市列表-城市汉字搜索和拼音搜索/CityList/libs/pinyin4j-2.5.0.jar , 188920
城市列表-城市汉字搜索和拼音搜索/CityList/proguard.cfg , 1248
城市列表-城市汉字搜索和拼音搜索/CityList/project.properties , 361
城市列表-城市汉字搜索和拼音搜索/CityList/res/drawable-hdpi/contact_list_icon.png , 5062
城市列表-城市汉字搜索和拼音搜索/CityList/res/drawable-hdpi/ic_launcher.png , 4147
城市列表-城市汉字搜索和拼音搜索/CityList/res/drawable-ldpi/ic_launcher.png , 1723
城市列表-城市汉字搜索和拼音搜索/CityList/res/drawable-mdpi/ic_launcher.png , 2574
城市列表-城市汉字搜索和拼音搜索/CityList/res/layout/city_list.xml , 2151
城市列表-城市汉字搜索和拼音搜索/CityList/res/layout/list_item.xml , 2083
城市列表-城市汉字搜索和拼音搜索/CityList/res/layout/main.xml , 432
城市列表-城市汉字搜索和拼音搜索/CityList/res/layout/overlay.xml , 399
城市列表-城市汉字搜索和拼音搜索/CityList/res/raw/china_city , 23552
城市列表-城市汉字搜索和拼音搜索/CityList/res/values/strings.xml , 182
城市列表-城市汉字搜索和拼音搜索/CityList/src/com/city/list/db/DBManager.java , 2203
城市列表-城市汉字搜索和拼音搜索/CityList/src/com/city/list/main/CityList.java , 8463
城市列表-城市汉字搜索和拼音搜索/CityList/src/com/city/list/main/CityModel.java , 479
城市列表-城市汉字搜索和拼音搜索/CityList/src/com/city/list/main/MainActivity.java , 855
城市列表-城市汉字搜索和拼音搜索/CityList/src/com/city/list/main/MyLetterListView.java , 3083
1.jpg , 81400
2.jpg , 77836
没有账号? 忘记密码?

社交账号快速登录