GVKun编程网logo

Android开发实现消除屏幕锁的方法(android开发实现消除屏幕锁的方法有哪些)

23

这篇文章主要围绕Android开发实现消除屏幕锁的方法和android开发实现消除屏幕锁的方法有哪些展开,旨在为您提供一份详细的参考资料。我们将全面介绍Android开发实现消除屏幕锁的方法的优缺点,

这篇文章主要围绕Android开发实现消除屏幕锁的方法android开发实现消除屏幕锁的方法有哪些展开,旨在为您提供一份详细的参考资料。我们将全面介绍Android开发实现消除屏幕锁的方法的优缺点,解答android开发实现消除屏幕锁的方法有哪些的相关问题,同时也会为您带来Android开发实例之登录界面的实现、Android开发实现Fragment监听返回键事件功能的方法、Android开发实现Gallery画廊效果的方法、Android开发实现Launcher3应用列表修改透明背景的方法的实用方法。

本文目录一览:

Android开发实现消除屏幕锁的方法(android开发实现消除屏幕锁的方法有哪些)

Android开发实现消除屏幕锁的方法(android开发实现消除屏幕锁的方法有哪些)

本文实例讲述了Android开发实现消除屏幕锁的方法。分享给大家供大家参考,具体如下:

实现屏幕无锁--->当我们开机或者超过锁屏幕时间或按电源键之后屏幕没有锁的一种状态。

经过查询许多资料以及分析代码,我们可以发现最主要的屏幕功能还是在framework/base/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java中。

里面有一个handleshow方法:

真正的去锁屏实现有一个 handlehide方法,真正的去隐藏锁屏实现 handleshow方法:

private void handleShow() {
  synchronized (KeyguardViewMediator.this) {
    if (DEBUG) Log.d(TAG,"handleShow");
    if (!mSystemReady) return;
    playSounds(true);
    mKeyguardViewManager.show(); //  显示锁屏界面对应的窗口
    mShowing = true;       // 锁屏状态 , 即显示锁屏
    adjustUserActivityLocked();  // 取消对用户Activity的控制
    adjustStatusBarLocked();   //取消对状态栏的控制
    try {
      ActivityManagerNative.getDefault().closeSystemDialogs("lock");
    } catch (remoteexception e) {
    }
    mShowKeyguardWakeLock.release();
  }
}

我们只要将上面注释了的语句注释掉,那么就执行的空的,那样就取消真正的去锁屏实现

同理handlehide方法也只要注释

mKeyguardViewManager.hide();
mShowing = false;
adjustUserActivityLocked();
AdjustStatusBarLocked()

就可以取消真正的去隐藏锁屏实现。

但是做完以上后仍存在一个Bug(问题),就是唤醒屏幕后,会在指定的时间内屏幕由亮变暗,我们还需要做如下修改:按下POWER键时,解除屏幕由亮变暗的Bug。

handleWakeWhenReady(int keyCode)方法下注释掉

pokeWakelock(); //按下POWER键时, 解除屏幕由亮变暗的Bug

就可以达到效果了。

最后还有一种方法就是在KeyguardViewMediator.java中有一个变量mExternallyEnabled,只要将其初始改为false,需要显示界面(doKeyguard())时都不会继续走下去,也可以达到效果。

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

Android开发实例之登录界面的实现

Android开发实例之登录界面的实现

本文要演示的Android开发实例是如何完成一个Android中的miniTwitter登录界面,下面将分步骤讲解怎样实现图中的界面效果,让大家都能轻松的做出美观的登录界面。

       miniTwitter登录界面效果图

       先贴上最终要完成的效果图:

       miniTwitter登录界面的布局分析

       首先由界面图分析布局,基本可以分为三个部分,下面分别讲解每个部分。

       第一部分是一个带渐变色背景的LinearLayout布局,关于背景渐变色就不再贴代码了,效果如下图所示:

       第二部分,红色线区域内,包括1,2,3,4  如图所示:

       红色的1表示的是一个带圆角且背景色为#55FFFFFF(淡蓝色)的RelativeLayout布局,代码如下:

XML/HTML代码

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#55FFFFFF" /> 
    <!-- 设置圆角  
    注意:    bottomrighTradius是左下角而不是右下角 bottomLefTradius右下角--> 
    <corners android:topLefTradius="10dp" android:topRighTradius="10dp" 
        android:bottomrighTradius="10dp" android:bottomLefTradius="10dp"/> 
</shape> 

solid表示填充色,这里填充的是淡蓝色。corners是设置圆角。

       dp (即dip,device independent pixels)设备独立像素:这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA ,不依赖像素。在android上开发的程序将会在不同分辨率的手机上运行。为了让程序外观不至于相差太大,所以引入了dip的概念。比如定义一个矩形10 x 10dip. 在分辨率为160dpi 的屏上,比如G1,正好是10 x 10像素。 而在240 dpi 的屏,则是15 x 15 像素。换算公式为 pixs = dips * (density/160)。density 就是屏的分辨率。

       然后RelativeLayou的background引用此drawable,具体RelativeLayout设置如下:

XML/HTML代码

<RelativeLayout 
     android:id="@+id/login_div" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="15dip" 
     android:layout_margin="15dip" 
     android:background="@drawable/background_login_div_bg" 
     > 
</RelativeLayout> 

       padding 是指内边距(也就是指内容与边框的距离),layout_margin为外边距(它的上一层与边框的距离)。

       接下来是区域2,为账号的文本和输入框,首先是账号的文本,代码如下:

XML/HTML代码

<TextView 
    android:id="@+id/login_user_input" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="5dp" 
    android:text="@string/login_label_username"https://www.jb51.cc/tag/nor/" target="_blank">normalText"/> 

       android:layout_alignParentTop 这里表示此TextView的位置处于顶部

       android:layout_marginTop="5dp" 这里表示此TextView的边框与RelativeLayout的顶部边框距离有5dp

       这里需要对这个TextView设置下字体颜色和字体大小,定义在res/style.xml里面:

XML/HTML代码

<style name="normalText" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">#444</item> 
    <item name="android:textSize">14sp</item> 
</style> 

         定义账号的输入框,如下:

XML/HTML代码

<EditText 
    android:id="@+id/username_edit" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:hint="@string/login_username_hint" 
    android:layout_below="@id/login_user_input" 
    android:singleLine="true" 
    android:inputType="text"/> 

 android:hint 输入框里面的提示文字,android:layout_below这里是设置为在账号的文本框的下面,android:singleLine 为单行输入(即你输入回车的时候不会在换行了),android:inputType这里text表示输入的类型为文本。

       区域3是密码文本和输入框,同区域2,代码如下:

XML/HTML代码

<TextView 
   android:id="@+id/login_password_input" 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:layout_below="@id/username_edit" 
   android:layout_marginTop="3dp" 
   android:text="@string/login_label_password"https://www.jb51.cc/tag/nor/" target="_blank">normalText"/> 
<EditText 
   android:id="@+id/password_edit" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:layout_below="@id/login_password_input" 
   android:password="true" 
   android:singleLine="true" 
   android:inputType="textPassword" 
/> 

            区域4,登录按钮:

XML/HTML代码

<Button 
   android:id="@+id/signin_button" 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:layout_below="@id/password_edit" 
   android:layout_alignRight="@id/password_edit" 
   android:text="@string/login_label_signin" 
   android:background="@drawable/blue_button" 
/> 

       第三部分:底下的文字和两张图片,分别标记了1,4:

    区域1:还是一个RelativeLayout,但这里设置的很简单,代码如下:

XML/HTML代码

<RelativeLayout 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content"> 
</RelativeLayout> 

 区域2:"没有账号?注册"这几个文字定义在string里面,包含了一个<a>标签:

XML/HTML代码

<string name="login_register_link">没有帐号? <a href="#" mce_href="#">注册</a></string>  

       定义如下:

XML/HTML代码

<TextView android:id="@+id/register_link" 
  android:text="@string/login_register_link" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:layout_marginLeft="15dp" 
  android:textColor="#888" 
  android:textColorLink="#FF0066CC" 
/> 

TextView是支持简单的html标签的,如<a>标签,但并不是支持所有标签,支持更复杂的html标签得用webView组件。

       android:textColorLink是设置文字链接的颜色. 虽然TextView支持<a>标签,但是这里是不能点此链接的,不要被假象迷惑。

       区域3是一直猫的卡通图片,貌似有点丑,将就下吧:

XML/HTML代码

<ImageView android:id="@+id/miniTwitter_logo" 
    android:src="@drawable/cat" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentBottom="true" 
    android:layout_marginRight="25dp" 
    android:layout_marginLeft="10dp" 
    android:layout_marginBottom="25dp" 
/> 

       android:layout_alignParentRight="true" 位于layout的最右边

       android:layout_alignParentBottom="true"  位于layout的最底部

       android:layout_marginRight="25dp"  该imageView的边框距离layout边框有25dp,其他的margin类似。

       区域4 是一个带文字的图片的ImageView:

XML/HTML代码

<ImageView android:src="@drawable/logo" 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:layout_toLeftOf="@id/miniTwitter_logo" 
   android:layout_alignBottom="@id/miniTwitter_logo" 
   android:paddingBottom="8dp" 
/> 

       android:layout_toLeftOf="@id/miniTwitter_logo"  在那个小猫ImageView的左边(水平位置)

       android:layout_alignBottom="@id/miniTwitter_logo"  这里意思是这两个ImageView(区域3和区域4)下边缘对齐

       android:paddingBottom="8dp"  图片距离ImageView底部边框8dp,也就是将图片上抬个8dp

       实现miniTwitter登陆界面的具体步骤

       具体步骤如下:

       第一步:一些字符串定义

       /miniTwitterLoginDemo/res/values/strings.xml

XML/HTML代码

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
  <string name="hello">Hello World,LoginActivity!</string> 
  <string name="login_label_username">帐号</string> 
  <string name="login_label_password">密码</string> 
  <string name="login_label_signin">登 录</string> 
  <string name="login_status_logging_in">登录中...</string> 
  <string name="login_username_hint">Email或手机号</string> 
  <string name="login_register_link">没有帐号? <a href="#" mce_href="#">注册</a></string> 
  <string name="app_name">miniTwitter</string> 
</resources> 

第二步:

       /miniTwitterLoginDemo/res/values/style.xml

XML/HTML代码

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="normalText" parent="@android:style/TextAppearance">            
    <item name="android:textColor">#444</item> 
    <item name="android:textSize">14sp</item> 
    </style> 
</resources> 

 第三步:背景色为渐变色

       /miniTwitterLoginDemo/res/drawable-mdpi/background_login.xml

XML/HTML代码

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
   <gradient 
      android:startColor="#FFACDAE5" 
      android:endColor="#FF72CAE1" 
      android:angle="45" 
   /> 
</shape> 

 第四步:背景色味淡蓝色且为圆角

       /miniTwitterLoginDemo/res/drawable-mdpi/background_login_div_bg.xml

XML/HTML代码

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#55FFFFFF" /> 
    <!-- 设置圆角  
    注意:    bottomrighTradius是左下角而不是右下角 bottomLefTradius右下角--> 
    <corners android:topLefTradius="10dp" android:topRighTradius="10dp" 
        android:bottomrighTradius="10dp" android:bottomLefTradius="10dp"/> 
</shape> 

 第五步:

       /miniTwitterLoginDemo/res/layout/login.xml

XML/HTML代码

<?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" 
 android:background="@drawable/background_login"> 
 <!-- padding 内边距  layout_margin 外边距  
         android:layout_alignParentTop 布局的位置是否处于顶部 --> 
 <RelativeLayout 
     android:id="@+id/login_div" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="15dip" 
     android:layout_margin="15dip" 
     android:background="@drawable/background_login_div_bg" 
     > 
     <!-- 账号 --> 
     <TextView 
         android:id="@+id/login_user_input" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignParentTop="true" 
         android:layout_marginTop="5dp" 
         android:text="@string/login_label_username"https://www.jb51.cc/tag/nor/" target="_blank">normalText"/> 
     <EditText 
         android:id="@+id/username_edit" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:hint="@string/login_username_hint" 
         android:layout_below="@id/login_user_input" 
         android:singleLine="true" 
         android:inputType="text"/> 
  <!-- 密码 text --> 
  <TextView 
      android:id="@+id/login_password_input" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/username_edit" 
      android:layout_marginTop="3dp" 
      android:text="@string/login_label_password"https://www.jb51.cc/tag/nor/" target="_blank">normalText"/> 
  <EditText 
      android:id="@+id/password_edit" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/login_password_input" 
      android:password="true" 
      android:singleLine="true" 
      android:inputType="textPassword" 
  /> 
  <!-- 登录button --> 
  <Button 
      android:id="@+id/signin_button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/password_edit" 
      android:layout_alignRight="@id/password_edit" 
      android:text="@string/login_label_signin" 
      android:background="@drawable/blue_button" 
  /> 
 </RelativeLayout> 
 
 
 <RelativeLayout 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   > 
     <TextView android:id="@+id/register_link" 
       android:text="@string/login_register_link" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="15dp" 
       android:textColor="#888" 
       android:textColorLink="#FF0066CC" 
     /> 
      <ImageView android:id="@+id/miniTwitter_logo" 
        android:src="@drawable/cat" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:layout_alignParentBottom="true" 
        android:layout_marginRight="25dp" 
        android:layout_marginLeft="10dp" 
        android:layout_marginBottom="25dp" 
         /> 
     <ImageView android:src="@drawable/logo" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_toLeftOf="@id/miniTwitter_logo" 
       android:layout_alignBottom="@id/miniTwitter_logo" 
       android:paddingBottom="8dp" 
       /> 
      </RelativeLayout> 
 
</LinearLayout> 

  第七步:

       /miniTwitterLoginDemo/src/com/mytwitter/acitivity/LoginActivity.java

       这里要注意的是,该Activity是无标题的,设置无标题需要在setContentView之前设置,否则会报错。

Java代码

package com.mytwitter.acitivity;  
 
import android.app.Activity;  
import android.os.Bundle;  
import android.view.Window;  
 
public class LoginActivity extends Activity {  
  @Override 
  public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    requestwindowFeature(Window.FEATURE_NO_TITLE);  
    setContentView(R.layout.login);  
  }  
} 

 到此,Android中的miniTwitter登录界面的制作就介绍完毕了,是不是做出不错的登录界面并不算难呢?

以上就是对Android登录界面的开发示例,希望能帮助开发Android应用的朋友,谢谢大家对本站的支持。

Android开发实现Fragment监听返回键事件功能的方法

Android开发实现Fragment监听返回键事件功能的方法

本文实例讲述了Android开发实现Fragment监听返回键事件功能的方法。分享给大家供大家参考,具体如下:

前面的文章Android开发教程之Fragment定义、创建与使用方法详细讲述了Fragment的基本概念与用法。这里再来分析一下Fragment监听返回键事件的具体应用。

背景

项目要求用户注册成功后进入修改个人资料的页面,且不允许返回到上一个页面,资料修改完成后结束当前页面,进入APP主页。

由于是使用多个Fragment完成注册流程,就需要Fragment监听用户点击手机上的返回按钮,查了一些资料,加上自己使用过程中发现的问题,特此记录,帮助更多有此需求的朋友

代码实现

XXX_Fragment
@Override
public void onResume() {
    super.onResume();
    getFocus();
}
//主界面获取焦点
private void getFocus() {
    getView().setFocusableInTouchMode(true);
    getView().requestFocus();
    getView().setonKeyListener(new View.OnKeyListener() {
      @Override
      public boolean onKey(View v,int keyCode,KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
          // 监听到返回按钮点击事件
          ......
          return true;
        }
        return false;
      }
    });
}

以上代码是stackoverflow.com中找到的一个解决方案,但是在使用时,由于Fragment页面里可能有其他能获取焦点的View(例如EditText),会导致监听失效,点击返回键会返回到上个页面。

更完善的解决方案:

除了上面的代码,我们需要对可以获取焦点的View的setonKeyListener进行处理,这里以一个EditText为例:

//private EditText nickname;
nickname.setonKeyListener(new View.OnKeyListener() {
  @Override
  public boolean onKey(View v,KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK
        && event.getAction() == KeyEvent.ACTION_UP) {
      //关闭软键盘
      InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
      imm.hideSoftInputFromWindow(nickname.getwindowToken(),0);
      //使得根View重新获取焦点,以监听返回键
      getFocus();
    }
    return false;
  }
});

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android基本组件用法总结》、《Android开发入门与进阶教程》、《Android布局layout技巧总结》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android资源操作技巧汇总》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

Android开发实现Gallery画廊效果的方法

Android开发实现Gallery画廊效果的方法

本文实例讲述了Android开发实现gallery画廊效果的方法。分享给大家供大家参考,具体如下:

画廊 使用gallery表示,按水平方向显示内容,并且可以用手指直接拖动图片移动,一般用来浏览图片,被选中的选项位于中间,可以响应事件显示信息。

xml布局文件基本语法

<gallery
属性列表
/>

gallery支持4中xml属性

属性名称
描述
android:animationDuration
设置布局变化时动画的转换所需的时间(毫秒级)。仅在动画开始时计时。该值必须是整数,比如:100。
android:gravity 指定在对象的X和Y轴上如何放置内容。指定一下常量中的一个或多个(使用 “|”分割)

Constant Value Description top 0×30 紧靠容器顶端,不改变其大小 bottom 0×50 紧靠容器底部,不改变其大小 left 0×03 紧靠容器左侧,不改变其大小 right 0×05 紧靠容器右侧,不改变其大小 center_vertical 0×10 垂直居中,不改变其大小 fill_vertical 0×70 垂直方向上拉伸至充满容器 center_horizontal 0×01 水平居中,不改变其大小 Fill_horizontal 0×07 水平方向上拉伸使其充满容器 center 0×11 居中对齐,不改变其大小 fill 0×77 在水平和垂直方向上拉伸,使其充满容器 clip_vertical 0×80 垂直剪切(当对象边缘超出容器的时候,将上下边缘超出的部分剪切掉) clip_horizontal 0×08 水平剪切(当对象边缘超出容器的时候,将左右边缘超出的部分剪切掉) android:spacing (译者注:设置图片之间的间距) android:unselectedAlpha 设置未选中的条目的透明度(Alpha)。该值必须是float类型,比如:“1.2”
效果的具体实现过程

layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >
  <gallery
    android:id="@+id/gallery"
    android:spacing="5px"     //设置列表项之间的间距为5像素
    android:unselectedAlpha="0.5" //设置未被选中的列表项的透明度
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
</LinearLayout>

Activity:

package xqx;
import com.example.xqx_lianxi.R;
import android.app.Activity;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.gallery;
import android.widget.ImageView;
import android.widget.Toast;
public class Maingallery extends Activity{
   //设置画廊图片
  private int[] imageId = new int[] { R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher};
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // Todo Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_gallery);
    //获取gallery组件
    gallery gallery = (gallery) findViewById(R.id.gallery);
    BaseAdapter adapter = new BaseAdapter() {
        //获取当前选项ID
        @Override
        public long getItemId(int position) {
          return position;
        }
        //获取当前选项值
        @Override
        public Object getItem(int position) {
          return position;
        }
        //获取数量
        @Override
        public int getCount() {
          return imageId.length;
        }
      @Override
      public View getView(int position,View convertView,ViewGroup parent) {
        ImageView imageview;  //声明ImageView的对象
        if (convertView == null) {
          imageview = new ImageView(Maingallery.this); //创建ImageView的对象
          imageview.setScaleType(ImageView.ScaleType.FIT_XY); //设置缩放方式
          imageview.setLayoutParams(new gallery.LayoutParams(500,400));
          TypedArray typedArray = obtainStyledAttributes(R.styleable.gallery);
          imageview.setBackgroundResource(typedArray.getResourceId(
              R.styleable.gallery_android_galleryItemBackground,0));
          imageview.setPadding(5,5,0); //设置imageview的内边距
        }
        else
        {
          imageview = (ImageView) convertView;
        }
        imageview.setimageResource(imageId[position]);
        return imageview;
      }
    };
      //将适配器与gallery关联
      gallery.setAdapter(adapter);
      gallery.setSelection(imageId.length / 2); //默认显示的图片的id
      //画廊图片的点击事件
      gallery.setonItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent,View view,int position,long id) {
          Toast.makeText(Maingallery.this,"第" + String.valueOf(position+1) + "张图片被选中",Toast.LENGTH_SHORT).show();
        }
      });
}
}

最后在res/values/string.xml中添加一段代码  ,这里对应activity中的51行

<declare-styleable name="gallery">
    <attr name="android:galleryItemBackground" />
</declare-styleable>

这样便完成了一个画廊的效果

效果图:

可以看到 一共有6张图片 默认显示第4张

gallery.setSelection(imageId.length / 2); //默认显示的图片的id

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

Android开发实现Launcher3应用列表修改透明背景的方法

Android开发实现Launcher3应用列表修改透明背景的方法

本文实例讲述了Android开发实现Launcher3应用列表修改透明背景的方法。分享给大家供大家参考,具体如下:

Launcher时开机完成后第一个启动的应用,用来展示应用列表和快捷方式、小部件等。Launcher作为第一个(开机后第一个启动的应用)展示给用户的应用程序,其设计的好坏影响到用户的体验,甚至影响用户购机的判断。所以很多品牌厂商都会不遗余力的对Launcher进行深度定制,如小米的Miui、华为的EMUI等。Android默认的Launcher没有过多的定制,更加简洁,受到源生党的追捧,Google的Nexus系列手机基本都是用的源生Launcher,目前Android源生的Launcher版本是Launcher3。

前面总结了一些常见的launcher3配置修改方法,这里来分析一下launcher3的应用列表背景的修改技巧。

将launcher3的应用列表背景修改为透明,与Launcher2略有不同,需要进行如下步骤:

1. 找到res/layout/apps_customize_pane.xml文件,将

<com.android.launcher3.appscustomizetabhost
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
android:background="#FF000000">

修改为:

<com.android.launcher3.appscustomizetabhost
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
android:background="#00000000">

将动画部分

<frameLayout
android:id="@+id/animation_buffer" 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF000000"
android:visibility="gone" />

修改为:

<frameLayout
 android:id="@+id/animation_buffer" 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:visibility="gone" />

2、找到AppsCustomizeTabHost.java类中的onTabChangedEnd()方法,如下:

private void onTabChangedEnd(AppsCustomizePagedView.ContentType type) {
    int bgalpha = (int) (255 * (getResources().getInteger(
      R.integer.config_appsCustomizeSpringLoadedBgalpha) / 100f));
    setBackgroundColor(Color.argb(bgalpha,0));
    mAppsCustomizePane.setContentType(type);
}

其中bgalpha为透明度的参数,将其改为你需要的透明度即可,255为不透明,以上1、2步骤完之后,保存,编译,即可达到需要的效果。

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

关于Android开发实现消除屏幕锁的方法android开发实现消除屏幕锁的方法有哪些的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Android开发实例之登录界面的实现、Android开发实现Fragment监听返回键事件功能的方法、Android开发实现Gallery画廊效果的方法、Android开发实现Launcher3应用列表修改透明背景的方法的相关知识,请在本站寻找。

本文标签: