新浪微博第三方登录界面上下拉伸图片之第三方开源PullToZoomListViewEx(二)_Android

上篇文章给大家介绍了新浪微博第三方登录界面上下拉伸图片之第三方开源PullToZoomListViewEx(一),需要了解的朋友可以点击了解详情。

这是PullZoomView在ScrollView实现,Android PullZoomView在ScrollView的实现是:PullToZoomScrollViewEx

下载地址:https://github.com/Frank-Zhu/PullZoomView

本文要说的PullToZoomScrollViewEx则以另外一种方式在Java代码中动态的为PullZoomView装载View:

private void loadViewForPullToZoomScrollView(PullToZoomScrollViewEx scrollView) {
  View headView = LayoutInflater.from(this).inflate(R.layout.head_view, null);
  View zoomView = LayoutInflater.from(this).inflate(R.layout.head_zoom_view, null);
  View contentView = LayoutInflater.from(this).inflate(R.layout.content_view, null);
  scrollView.setHeaderView(headView);
  scrollView.setZoomView(zoomView);
  scrollView.setScrollContentView(contentView);
 } 

两点内容需要注意:

(1)所有Android PullZoomView的头部及缩放效果都可以关闭或者开启,具体方式就是通过改变设置各种方法的true或false值。以下是比较重要的几个方法:

setParallax(boolean b);

true则有视差效果,false则无。

setHideHeader(boolean b);

true则隐藏自己定义的head view,false则显示。

setZoomEnabled(boolean b);
true支持缩放,false不支持缩放。

默认的,

setParallax(true);
setHideHeader(false);
setZoomEnabled(true);

(2)PullZoomView中嵌套的子View,需要通过getPullRootView().findViewById(R.id.xxxx)这样的方式找出来,而不是直接的findViewById()。

下面给出一个完整例子加以说明。

先写一个布局:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  xmlns:custom="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="match_parent" >
  <com.ecloud.pulltozoomview.PullToZoomScrollViewEx
   android:id="@+id/scroll_view"
   android:layout_width="match_parent"
   android:layout_height="match_parent" />
 </RelativeLayout> 

Java代码:

 package com.zzw.testpullzoomview_scrollview;
 import com.ecloud.pulltozoomview.PullToZoomScrollViewEx;
 import android.app.Activity;
 import android.os.Bundle;
 import android.util.DisplayMetrics;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.LinearLayout;
 public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   // 注意初始化顺序,不要弄乱,否则抛出运行时空指针
   PullToZoomScrollViewEx scrollView = (PullToZoomScrollViewEx) findViewById(R.id.scroll_view);
   loadViewForPullToZoomScrollView(scrollView);
   scrollView.getPullRootView().findViewById(R.id.tv_test).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
     Log.d("PullToZoomScrollViewEx", "onClick");
    }
   });
   scrollView.getPullRootView().findViewById(R.id.tv_test).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
     Log.e("PullToZoomScrollViewEx", "onClick");
    }
   });
   scrollView.getPullRootView().findViewById(R.id.tv_test).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
     Log.d("PullToZoomScrollViewEx", "onClick");
    }
   });
   setPullToZoomViewLayoutParams(scrollView);
  }
  private void loadViewForPullToZoomScrollView(PullToZoomScrollViewEx scrollView) {
   View headView = LayoutInflater.from(this).inflate(R.layout.head_view, null);
   View zoomView = LayoutInflater.from(this).inflate(R.layout.head_zoom_view, null);
   View contentView = LayoutInflater.from(this).inflate(R.layout.content_view, null);
   scrollView.setHeaderView(headView);
   scrollView.setZoomView(zoomView);
   scrollView.setScrollContentView(contentView);
  }
  // 设置头部的View的宽高。
  private void setPullToZoomViewLayoutParams(PullToZoomScrollViewEx scrollView) {
   DisplayMetrics localDisplayMetrics = new DisplayMetrics();
   getWindowManager().getDefaultDisplay().getMetrics(localDisplayMetrics);
   int mScreenHeight = localDisplayMetrics.heightPixels;
   int mScreenWidth = localDisplayMetrics.widthPixels;
   LinearLayout.LayoutParams localObject = new LinearLayout.LayoutParams(mScreenWidth,
     (int) (.F * (mScreenWidth / .F)));
   scrollView.setHeaderLayoutParams(localObject);
  }
 } 

 java代码需要的子布局:

head_view.xml:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/layout_view"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layout_gravity="bottom"
  android:gravity="bottom">
  <ImageView
   android:id="@+id/iv_user_head"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_centerInParent="true"
   android:src="@drawable/ic_launcher" />
  <TextView
   android:id="@+id/tv_user_name"
   android:textSize="sp"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_below="@id/iv_user_head"
   android:layout_centerHorizontal="true"
   android:text="新浪微博"
   android:textColor="#ffffff" />
  <LinearLayout
   android:id="@+id/ll_action_button"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:background="#"
   android:layout_alignParentBottom="true"
   android:padding="dip">
   <TextView
    android:id="@+id/tv_register"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="注册"
    android:layout_weight=""
    android:textSize="sp"
    android:gravity="center"
    android:layout_gravity="center"
    android:textColor="#ffffff" />
   <TextView
    android:id="@+id/tv_login"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="登录"
    android:layout_weight=""
    android:textSize="sp"
    android:gravity="center"
    android:layout_gravity="center"
    android:textColor="#ffffff" />
  </LinearLayout>
 </RelativeLayout> 

head_zoom_view.xml:

 <?xml version="." encoding="utf-"?>
 <ImageView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/imageView"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layout_gravity="center_horizontal"
  android:scaleType="centerCrop"
  android:src="@drawable/a" /> 

head_zoom_view其实就放了一张可供缩放拉伸的图片。

content_view.xml:

 <?xml version="." encoding="utf-"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="#ffffff"
  android:orientation="vertical" >
  <TextView
   android:id="@+id/tv_test"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:gravity="center_vertical"
   android:padding="dp"
   android:text="test"
   android:textSize="sp" />
  <TextView
   android:id="@+id/tv_test"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:gravity="center_vertical"
   android:padding="dp"
   android:text="test"
   android:textSize="sp" />
  <TextView
   android:id="@+id/tv_test"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:gravity="center_vertical"
   android:padding="dp"
   android:text="test"
   android:textSize="sp" />
  <TextView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:gravity="center_vertical"
   android:padding="dp"
   android:text="test"
   android:textSize="sp" />
  <TextView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:gravity="center_vertical"
   android:padding="dp"
   android:text="test"
   android:textSize="sp" />
  <TextView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:background="#eeeeee" />
  <TextView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:gravity="center_vertical"
   android:padding="dp"
   android:text="test"
   android:textSize="sp" />
  <TextView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:gravity="center_vertical"
   android:padding="dp"
   android:text="test"
   android:textSize="sp" />
  <TextView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:gravity="center_vertical"
   android:padding="dp"
   android:text="test"
   android:textSize="sp" />
  <TextView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:gravity="center_vertical"
   android:padding="dp"
   android:text="test"
   android:textSize="sp" />
  <TextView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:gravity="center_vertical"
   android:padding="dp"
   android:text="test"
   android:textSize="sp" />
 </LinearLayout> 

实际开发中,如果确定要用ScrollView包括自己项目中的子View,那么content_view.xml就是其他View的装载“父”布局。重点需要在content_view.xml中展开。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索微博第三方登陆
pulltozoomlistviewex
pullzoomview、pulltozoomview、android pullzoomview、pulltozoomlistview、pulltozoomscrollview,以便于您获取更多的相关知识。

时间: 2024-09-19 09:06:33

新浪微博第三方登录界面上下拉伸图片之第三方开源PullToZoomListViewEx(二)_Android的相关文章

第三方登录-自己的应用实现微博第三方登陆问题,为什没人回答呢。。。

问题描述 自己的应用实现微博第三方登陆问题,为什没人回答呢... 3C 新手....自己的应用能实现的是微博第三方登录.怎样改成点击微博第三方登录时每次都跳转到微博的登录界面而不管微博是否已经登录了微博账号.求指点 解决方案 没有 解决方案二: 第三方登陆问题

新浪第三方登录问题-微信,新浪第三方登录

问题描述 微信,新浪第三方登录 微信和新浪第三方登录时,测试能使用官方提供的demo里的key 和appid吗?求大神解答! 解决方案 没听说新浪,微信有提供测试key和appid,自己去申请一个就好了,微信比较麻烦,可能要审核,新浪比较简单 解决方案二: 他们一般忽悠一个demo用的id,你可以测试用 解决方案三: 你可以申请一个id试试看呀 解决方案四: 打算用什么语言写... 解决方案五: demo中的key只能供demo使用,你自己需要重新申请

android-sharesdk第三方登录怎么修改授权图标

问题描述 sharesdk第三方登录怎么修改授权图标 sharesdk第三方登录怎么修改授权图标.怎么都显示的是默认的.怎么修改成自己的图标和名字. 解决方案 把res下你要换的图标换成你的 名字和他的一样就好了 主义尺寸 解决方案二: 是指友盟那些第三方登陆吗.我只知道友盟的要提交自己的app下载地址那些,在友盟网站上.之后才可以再修改成自己app的图片

怎么修改win7登录界面背景

1.按win+R快捷键打开运行界面在上面的对话框中输入"regedit":接着单击"确定"打开注册表编辑器,再依次展开注册表里的 "HKEY_LOCAL_MACHINE---SOFTWARE---Microsoft---Windows---CurrentVersion--- Authentication---LogonUI---Background":大家会找到上面有一个名为"OEMBackground"的双字节值 (假如没有

OS X系统从头开始更改登录界面背景

  Tip功能描述:更换OS X系统登录界面背景 准备好你要作为登录界面背景的图片,命名为DefaultDesktop.jpg 进入文件夹/System/Library/CoreServices/ (中文系统下为:/系统/资源库/CoreServices/) 通过重命名(root用户)或复制操作备份原文件 把第1步中准备好的图片复制到此目录 系统提示:The item "DefaultDesktop.jpg" can't be moved because "CoreServi

qq-网页接入第三方登录 QQ

问题描述 网页接入第三方登录 QQ 网站通过QQ互联提供的接口 实现QQ登录 .脚本自动生成的代码 点击按钮时 会在另一个页面打开QQ登录界面 ,如何在当前窗口打开呢 解决方案 实现QQ第三方登录.网站接入QQ的第三方登录QQ第三方登录

急,,,求帮助,,,自己的应用能实现的是微博第三方登录问题

问题描述 急,,,求帮助,,,自己的应用能实现的是微博第三方登录问题 新手....自己的应用能实现的是微博第三方登录.怎样改成点击微博第三方登录时每次都跳转到微博的登录界面而不管微博是否已经登录了微博账号.求指点 解决方案 既然你都实现了微博第三方登录,那就是实现了未登录跳到登录界面,已登录自动进入应用的功能.这一块肯定是有判断的,什么条件可以进应用,你把这一块的条件去掉不就好了,让它不管登没登录都进入登录界面. 解决方案二: qq.微信.微博第三方登录 解决方案三: 这个是第三方登录的SDK自

Android集成新浪微博第三方登录的方法_Android

本文实例讲述了Android集成新浪微博第三方登录的方法.分享给大家供大家参考.具体实现方法如下: 1.下载微博的sdk ,导入微博的jar包两个 android-support-v4.jar和weibosdkcore.jar两个包 2.把新浪微博中的demo_src中SDK中的com,导入到项目中 3.用demo中的constants,主要是参数设置,将里面的参数改成自己的参数. 4.编写代码,主要步骤如下: 复制代码 代码如下: // 初始化微博对象 mWeiboAuth = new Wei

jsp登录界面是一张图片 在图片上增加div--input,怎么让div 自适应背景大小

问题描述 jsp登录界面是一张图片 在图片上增加div--input,怎么让div 自适应背景大小 jsp登录界面是一张图片 在图片上增加div--input,怎么让div 自适应背景大小,浏览器缩小div不在原来位置![ 解决方案 div下图片自适应大小div背景图片自适应 解决方案二: 搞反了吧,应该是让图片自动填充满div吧.用css3 的background-size:100%,不过ie8-不支持 解决方案三: background-position:center; 解决方案四: 背景图