设置Android ImageView点击时的样式

 更新时间:2016年9月20日 19:59  点击:1754
昨天有一朋友问我有没有办法设置Android ImageView点击时的样式呢,后来我们到论坛问了朋友如下说


imageview.setXXX可以设置
setBackgroundResource背景,
布局setLayoutParams
还有setScaleType ,
源图片是无法改变的.不用担心.如果图片旋转,也只有生成另一个Bitmap

解决办法

首先,再res/drawable文件夹下创建一个xml文件,命名为logoutimage.xml,在该文件中实该图片在点击前和点击时的图片,代码如下:

 代码如下 复制代码

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 默认图片 --> 
    <item android:state_pressed="false" 
        android:drawable="@drawable/logout2" />
    <!-- 点击时图片 --> 
    <item android:state_pressed="true" 
        android:drawable="@drawable/logout1" /> 
</selector>

然后在ImageView的src属性中引用该文件,代码如下:

 代码如下 复制代码

<ImageButton
   android:src="@drawable/logoutimage"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   />

更多情况

 代码如下 复制代码

<!-- 默认图片 -->   
<item android:drawable="@drawable/img1" />
 
<!-- 没有焦点时的图片 -->   
<item android:state_window_focused="false"  
      android:drawable="@drawable/img2" />    

 <!--获得焦点时的图片  -->   
<item android:state_focused="true"    
      android:drawable="@drawable/img3" />
 
 <!--选中时的图片  -->   
 <item android:state_selected="true"    
      android:drawable="@drawable/img4" />
 
 <!-- 触摸模式下单击时的图片 -->   
 <item android:state_focused="false"
    android:state_pressed="true"    
    android:drawable="@drawable/img5" />  
 
 <!-- 非触摸模式下获得焦点并单击时的图片 -->   
 <item android:state_focused="true"
    android:state_pressed="true"    
    android:drawable= "@drawable/img6" />

方法这些了,大家可看看如下效果图

Android ImageView点击样式

本文章来给各位同学介绍自定义Android日期时间选择控件DateTimePickerDialog方法,有需要了解的同学不防进入参考。

Android系统提供了DatePicker、TimePicker、DatePickerDialog、TimePickerDialog控件用于日期和时间的选择和设置,但是它们都是相对独立的,不能方便的设置“yyyy-MM-dd HH:mm:ss”型日期时间,下面是使用这几种组件自定义的一个日期时间选择控件DateTimePickerDialog,可以方便的设置“yyyy-MM-dd HH:mm:ss”型日期时间,“yyyy-MM-dd”型日期和“HH:mm:ss”型时间,

代码实现:

 代码如下 复制代码

DateTimePickerDialog.java

package me.gogogogo.util;

import java.text.SimpleDateFormat;
import java.util.Calendar;

import me.gogogogo.activity.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
/**
 * 日期时间选择控件
 * @author 大漠
 */
public class DateTimePickerDialog implements  OnDateChangedListener,OnTimeChangedListener{
 private DatePicker datePicker;
 private TimePicker timePicker;
 private AlertDialog ad;
 private String dateTime;
 private String initDateTime;
 private Activity activity;
 
 /**
  * 日期时间弹出选择框构
  * @param activity:调用的父activity
  */
 public DateTimePickerDialog(Activity activity)
 {
  this.activity = activity;
 }
 
 public void init(DatePicker datePicker,TimePicker timePicker)
 {
  Calendar calendar= Calendar.getInstance();
  initDateTime=calendar.get(Calendar.YEAR)+"-"+calendar.get(Calendar.MONTH)+"-"+
    calendar.get(Calendar.DAY_OF_MONTH)+" "+
    calendar.get(Calendar.HOUR_OF_DAY)+":"+
    calendar.get(Calendar.MINUTE)+
    calendar.get(Calendar.SECOND);
  datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH), this);
  timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));
  timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE));
 }
 
 /**
  * 弹出日期时间选择框
  * @param dateTimeTextEdite 需要设置的日期时间文本编辑框
  * @param type: 0为日期时间类型:yyyy-MM-dd HH:mm:ss
  *         1为日期类型:yyyy-MM-dd
  *         2为时间类型:HH:mm:ss
  * @return
  */
 public AlertDialog dateTimePicKDialog(final EditText dateTimeTextEdite, int type)
 {
  Calendar c = Calendar.getInstance();
  switch (type) {
  case 1:
   new DatePickerDialog(activity,
     new DatePickerDialog.OnDateSetListener() {
      public void onDateSet(DatePicker datePicker, int year, int monthOfYear,
        int dayOfMonth) {
       Calendar calendar = Calendar.getInstance();
       calendar.set(datePicker.getYear(), datePicker.getMonth(),
         datePicker.getDayOfMonth());
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       dateTime=sdf.format(calendar.getTime());
       dateTimeTextEdite.setText(dateTime);
      }
     },
     c.get(Calendar.YEAR),
     c.get(Calendar.MONTH),
     c.get(Calendar.DATE)).show();
   return null;
  case 2:
   new TimePickerDialog(activity,
     new TimePickerDialog.OnTimeSetListener() {
      public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {
       Calendar calendar = Calendar.getInstance();
       calendar.set(Calendar.YEAR, Calendar.MONTH,
         Calendar.DAY_OF_MONTH, timePicker.getCurrentHour(),
         timePicker.getCurrentMinute());
       SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
       dateTime=sdf.format(calendar.getTime());
       dateTimeTextEdite.setText(dateTime);
      }
     },
     c.get(Calendar.HOUR_OF_DAY),
     c.get(Calendar.MINUTE),
     true).show();
   return null;
  default:
   LinearLayout dateTimeLayout  = (LinearLayout) activity.getLayoutInflater().inflate(R.layout.datetime, null);
   datePicker = (DatePicker) dateTimeLayout.findViewById(R.id.datepicker);
   timePicker = (TimePicker) dateTimeLayout.findViewById(R.id.timepicker);
   init(datePicker,timePicker);
   timePicker.setIs24HourView(true);
   timePicker.setOnTimeChangedListener(this);
     
   ad = new AlertDialog.Builder(activity).setIcon(R.drawable.datetimeicon).setTitle(initDateTime).setView(dateTimeLayout).setPositiveButton("设置",
       new DialogInterface.OnClickListener()
       {
        public void onClick(DialogInterface dialog,
          int whichButton)
        {
         dateTimeTextEdite.setText(dateTime);
        }
       }).setNegativeButton("取消",
       new DialogInterface.OnClickListener()
       {
        public void onClick(DialogInterface dialog,
          int whichButton)
        {
         dateTimeTextEdite.setText("");
        }
       }).show();
   
   onDateChanged(null, 0, 0, 0);
   return ad;
  }
 }
 
 public void onTimeChanged(TimePicker view, int hourOfDay, int minute)
 {
  onDateChanged(null, 0, 0, 0);
 }

 public void onDateChanged(DatePicker view, int year, int monthOfYear,
   int dayOfMonth)
 {
  Calendar calendar = Calendar.getInstance();

  calendar.set(datePicker.getYear(), datePicker.getMonth(),
    datePicker.getDayOfMonth(), timePicker.getCurrentHour(),
    timePicker.getCurrentMinute());
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  dateTime=sdf.format(calendar.getTime());
  ad.setTitle(dateTime);
 }
 
}

布局文件:

datetime.xml

 代码如下 复制代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <DatePicker
     android:id="@+id/datepicker"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content" />
 <TimePicker
     android:id="@+id/timepicker"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content" />
</LinearLayout>

使用实例:

MainActivity.java

 代码如下 复制代码

package me.gogogogo.activity;

import me.gogogogo.util.DateTimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.app.Activity;

public class MainActivity extends Activity {
 private EditText date;
 private EditText time;
 private EditText datetime;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        datetime = (EditText) this.findViewById(R.id.datetime);
        date = (EditText) this.findViewById(R.id.date);
        time = (EditText) this.findViewById(R.id.time);
       
        datetime.setOnClickListener(new DateTimeOnClick());
        date.setOnClickListener(new DateOnClick());
        time.setOnClickListener(new TimeOnClick());
    }
   
    private final class DateTimeOnClick implements OnClickListener{
  public void onClick(View v) {
   DateTimePickerDialog dateTimePicKDialog = new DateTimePickerDialog(
     MainActivity.this);
   dateTimePicKDialog.dateTimePicKDialog(datetime, 0);
  }
    }
   
    private final class DateOnClick implements OnClickListener{
     public void onClick(View v) {
      DateTimePickerDialog dateTimePicKDialog = new DateTimePickerDialog(
     MainActivity.this);
   dateTimePicKDialog.dateTimePicKDialog(date, 1);
  }
    }
   
    private final class TimeOnClick implements OnClickListener{
     public void onClick(View v) {
      DateTimePickerDialog dateTimePicKDialog = new DateTimePickerDialog(
     MainActivity.this);
   dateTimePicKDialog.dateTimePicKDialog(time, 2);
  }
    }
}

设置之后日期时间控件效果如下

点击查看原图

现在使用安卓系统的手机用户大批大批的,下面我来以htc手机为例来介绍android使用技巧及一些常见问题总结,大家可参考。

解决信号门


*#*#4636#*#*更改网络模式为GSM;

设置->无线和网络->移动网络设置->网络模式->仅 GSM


自定义铃声、提示音


默认情况下,只能只用系统自带的一些铃声和提示音,怎么使用自己下载的个性化铃声了,很简单:

一、手动方式

在SD卡里建立 “ringtones”(来电铃声)”alarms”(闹钟铃声) “notifications”(短信通知铃声),把你不同用途的铃声放到不同的文件夹下手机就可以自动找到。

用这个方法设置短信铃声的话需要,进入“短信”——MENU——通知设置,选择通知,选取自己的个性铃声,或在铃声设置里直接点取设。

二、貌似91手机助手有界面化的设置办法。

重启后桌面图标变小机器人解决办法


我的htc手机重启后,装在SD卡里的程序桌面图标快捷方式就会变成小机器人,经过查找原因是:
SD卡作为磁盘在linux里挂在(mount)顺序在系统启动之后,所以当时是无法读取到图标的。

解决办法有两种种:

方法1、更换皮肤

更换一下“皮肤”,届时系统会自动重新读取图标的。

方法2、卸载/重新安装存储卡

别怕,不是要拆机器,通过软操作实现:设置->手机和存储卡->卸载存储卡->安装存储卡。

这是后来才发现的,也是最好的方法。

事实证明,这个方法是不行的


android phone Drivers-我的htc手机驱动程序

安装官方的 rsync 包要148Mb,并且安装过程有些功能无法安装,所以我把它从包里提取出来,以备不时之需。
实现方法为:正常安装后用驱动精灵备份驱动的方法,所以比较的安全和完整。

能用来做什么?

usb文件传输、Internet共享(手机、pc双向均可)

一个记录android+java环境变量配置备忘教程,各位同学可参考,希望对文章对你有所帮助。
android:
 
变量 android

值    C:/Program Files/Android/android-sdk/platform-tools;C:/Program Files/Android/android-sdk/tools;C:/Program Files/Android/android-sdk;

 

变量PATH中加入:

 

%SystemRoot%/System32/Wbem;%android%;

JAVA:

 

变量:JAVA_HOME
值 C:/Program Files/Java/jdk1.6.0_10
变量:CLASSPATH
值 .;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;

PATH中加入:

 

 %SystemRoot%/System32/Wbem;%android%;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;
测试ANDROID成不成功
运行CMD
adb
一个超简单的方法可快速实现WebView自适应屏幕宽度,希望此方法对各位同学有所帮助。

// 让网页自适应屏幕宽度

 代码如下 复制代码

WebSettings webSettings= webView.getSettings();
webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);


LayoutAlgorithm是一个枚举,用来控制html的布局,总共有三种类型: NORMAL:正常显示,没有渲染变化。 SINGLE_COLUMN:把所有内容放到WebView组件等宽的一列中。 NARROW_COLUMNS:可能的话,使所有列的宽度不超过屏幕宽度。

 

[!--infotagslink--]

相关文章

  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • 利用JS实现点击按钮后图片自动切换的简单方法

    下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
  • Android模拟器上模拟来电和短信配置

    如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
  • 夜神android模拟器设置代理的方法

    夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
  • android自定义动态设置Button样式【很常用】

    为了增强android应用的用户体验,我们可以在一些Button按钮上自定义动态的设置一些样式,比如交互时改变字体、颜色、背景图等。 今天来看一个通过重写Button来动态实...2016-09-20
  • Android WebView加载html5页面实例教程

    如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
  • 深入理解Android中View和ViewGroup

    深入理解Android中View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。本教程我们深...2016-09-20
  • Android自定义WebView网络视频播放控件例子

    下面我们来看一篇关于Android自定义WebView网络视频播放控件开发例子,这个文章写得非常的不错下面给各位共享一下吧。 因为业务需要,以下代码均以Youtube网站在线视...2016-10-02
  • Android用MemoryFile文件类读写进行性能优化

    java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • android.os.BinderProxy cannot be cast to com解决办法

    本文章来给大家介绍关于android.os.BinderProxy cannot be cast to com解决办法,希望此文章对各位有帮助呀。 Android在绑定服务的时候出现java.lang.ClassCastExc...2016-09-20
  • Android 实现钉钉自动打卡功能

    这篇文章主要介绍了Android 实现钉钉自动打卡功能的步骤,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下...2021-03-15
  • Android 开发之布局细节对比:RTL模式

    下面我们来看一篇关于Android 开发之布局细节对比:RTL模式 ,希望这篇文章对各位同学会带来帮助,具体的细节如下介绍。 前言 讲真,好久没写博客了,2016都过了一半了,赶紧...2016-10-02
  • Android中使用SDcard进行文件的读取方法

    首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置: 在AndroidManifest.xml中加入访问SDCard的权限如下: <!--...2016-09-20
  • Android开发之PhoneGap打包及错误解决办法

    下面来给各位简单的介绍一下关于Android开发之PhoneGap打包及错误解决办法,希望碰到此类问题的同学可进入参考一下哦。 在我安装、配置好PhoneGap项目的所有依赖...2016-09-20
  • 用Intel HAXM给Android模拟器Emulator加速

    Android 模拟器 Emulator 速度真心不给力,, 现在我们来介绍使用 Intel HAXM 技术为 Android 模拟器加速,使模拟器运行度与真机比肩。 周末试玩了一下在Eclipse中使...2016-09-20
  • Android判断当前屏幕是全屏还是非全屏

    在安卓开发时我碰到一个问题就是需要实现全屏,但又需要我们来判断出用户是使用了全屏或非全屏了,下面我分别找了两段代码,大家可参考。 先来看一个android屏幕全屏实...2016-09-20
  • Android开发中布局中的onClick简单完成多控件时的监听的利与弊

    本文章来为各位介绍一篇关于Android开发中布局中的onClick简单完成多控件时的监听的利与弊的例子,希望这个例子能够帮助到各位朋友. 首先在一个控件加上这么一句:and...2016-09-20
  • Ubuntu 系统下安装Android开发环境 Android Studio 1.0 步骤

    Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试,可以在Linux,Mac OS X,Window...2016-09-20