当前位置:  编程技术>移动开发
本页文章导读:
    ▪带描述文字的飞瀑流        带描述文字的瀑布流现在UI设计瀑布流很火啊,貌似国内Android界,蘑菇街上是第一个尝试的。后来我又发现了一些地方也用到了,比如爱画报(http://aihuabao.cn),世纪佳缘。 其中后面两个是图.........
    ▪ 从零开始学新浪微博分享和第三方登陆(附源码上载)        从零开始学新浪微博分享和第三方登陆(附源码下载)         今天抽时间整理一下第三方的登陆与分享功能,主要包含新浪微博、腾讯微博、开心网、人人网、QQ空间的第三方登陆与分.........
    ▪ C字符串与NSString其间的转换       C字符串与NSString之间的转换C字符串与NSString之间的转换 代码: const char *cString = "这是一个C字符串, c string"; NSString *nsstring = @"这是个NSString字符串, nsstring"; NSLog(@"cString字符串-->.........

[1]带描述文字的飞瀑流
    来源: 互联网  发布时间: 2014-02-18
带描述文字的瀑布流

现在UI设计瀑布流很火啊,貌似国内Android界,蘑菇街上是第一个尝试的。后来我又发现了一些地方也用到了,比如爱画报(http://aihuabao.cn),世纪佳缘。

其中后面两个是图文结合的,我觉得比较好。下面就是我在《爱画报》官网上截的图。

不多说,先上图,描述下我想做个什么样的效果。下面是网页上的效果,就是不单纯的是图片的堆积,而是在图片下面还带文字说明。

下面是截图,特意截了个美女,哈哈



貌似android业界蘑菇街最早用瀑布流效果,但感觉蘑菇街的瀑布流效果界面只有纯粹的图片效果,不好看。

于是我想在Android下也做出上面那样的效果。

我的思路是这样的:

1.自定义一个FallwView.

FallView布局:

最外层一个ScrollView

里层一个大LinearLayout,  ll_main  里面的元素水平摆放

ll_main里面放三个LinearLayout,每个LinearLayout里面的元素又是水平摆放。

对于这个FlowView其实是想通过代码的方式动态设置里面的内容的 比如主LinearLayout里面有多少列子LinearLayout,不是固定写在xml里面的,

而是在代码里面动态addView进去。但还不知道怎么去实现。

2.自定义一个上面是图片下面是说明文字的MyImage的控件

准备好一些MyImage,然后循环addView进到每个LinearLayou中去。


能力有限,东拼西凑做出了下面这么个效果。

                                           。


这实现的效果还很粗糙,大家一起来完善吧!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

下面贴出代码:

package com.tomyzhou.pull;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.TextView;

public class FallDemoActivity extends Activity {
	private ScrollView sv_main;  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        	
         requestWindowFeature(Window.FEATURE_NO_TITLE);
         sv_main = new ScrollView(this);
         
         List<View> viewList = new ArrayList<View>();
         for(int i = 0;i<60;i++){
        	 if(i%2 == 0){
        		 View view = View.inflate(this,R.layout.myimage,null);
        		 ImageView iv_image = (ImageView) view.findViewById(R.id.iv_image);
        		 iv_image.setImageResource(R.drawable.a1);
        		 TextView tv_image = (TextView) view.findViewById(R.id.tv_image);
        		 tv_image.setText("第"+i+"个图的描述");
        		 viewList.add(view);
        	 }if(i%2 == 1){
        		 View view = View.inflate(this,R.layout.myimage,null);
        		 ImageView iv_image = (ImageView) view.findViewById(R.id.iv_image);
        		 iv_image.setImageResource(R.drawable.a14);
        		 TextView tv_image = (TextView) view.findViewById(R.id.tv_image);
        		 tv_image.setText("第"+i+"个图的描述");
        		 viewList.add(view);
        	 }
         }
         
         FallView fv = new FallView(this, viewList);
         sv_main.addView(fv);
         setContentView(sv_main);
         
    }
}


package com.tomyzhou.pull;

import java.util.ArrayList;
import java.util.List;
import java.util.zip.Inflater;

import android.content.Context;
import android.graphics.Canvas;
import android.view.View;
import android.widget.LinearLayout;

//自定义瀑布流控件
public class FallView extends LinearLayout {

	private List<LinearLayout> list;
	private LinearLayout ll_list1;
	private LinearLayout ll_list2;
	private LinearLayout ll_list3; // 三列

	/**
	 * 
	 * @param context
	 * @param viewList
	 *            需要显示的图片列表
	 */
	public FallView(Context context, List<View> viewList) {
		super(context);
		list = new ArrayList<LinearLayout>();
		View view = View.inflate(context, R.layout.layout_fall, this);

		ll_list1 = (LinearLayout) view.findViewById(R.id.ll_list1);
		ll_list2 = (LinearLayout) view.findViewById(R.id.ll_list2);
		ll_list3 = (LinearLayout) view.findViewById(R.id.ll_list3);

		initView(viewList);
	}

	// 添加每个LinearLayout里面的图片
	/**
	 * @param number
	 *            每个LinearLayout里面Image的个数
	 */
	private void initView(List<View> viewList) {
		System.out.println(viewList.size());
		for (int i = 0; i < viewList.size(); i++) {
			View view = viewList.get(i);
			if (i % 3 == 0) {
				ll_list1.addView(view);
			}
			if (i % 3 == 1) {
				ll_list2.addView(view);
			}
			if (i % 3 == 2) {
				ll_list3.addView(view);
			}
		}
	}

}

package com.tomyzhou.pull;

import android.content.Context;
import android.view.View;

public class MyImage extends View{

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

	
}


main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/ll_list1"
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#aaaaaa"
        android:orientation="vertical" >
    </LinearLayout>

    <LinearLayout
        android:id="@+id/ll_list2"
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#aaaaaa"
        android:orientation="vertical" >
    </LinearLayout>

    <LinearLayout
        android:id="@+id/ll_list3"
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#aaaaaa"
        android:orientation="vertical" >
    </LinearLayout>

</LinearLayout>


myimage
<?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:gravity="center"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/iv_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="/blog_article/@drawable/a12/index.html" />


    <TextView
        android:id="@+id/tv_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000000"
        android:textSize="14sp"
        android:text="描述文字" />

</LinearLayout>

本来想把代码文件上传下来,却发现传不了附件。有需要的加Q吧:893434467,欢迎一起交流!


    
[2] 从零开始学新浪微博分享和第三方登陆(附源码上载)
    来源: 互联网  发布时间: 2014-02-18
从零开始学新浪微博分享和第三方登陆(附源码下载)

         今天抽时间整理一下第三方的登陆与分享功能,主要包含新浪微博、腾讯微博、开心网、人人网、QQ空间的第三方登陆与分享以及实现QQ第三方登陆,下面来看下新浪微博的的第三方登陆与实现(另外,说明一点各大交友社区提供的SDK开发文档,可能会有更改,导致以前的SDK版本不能正常使用,但是使用SDK,开发的步骤都是大同小异的,只要掌握其SDK实现自己想要的功能就行了,一般来说比较常用的功能就属于第三方登陆与分享功能了):

第一步:下载SDK开发工具包以及相关文档

                  1.进入到新浪微博官网:   t.sina.com     点击页面最下方的开放平台,进入到开发者社区



进入如下页面,依次点击文档——>资源下载-——>SDK下载——>Android SDK


进入以下页面:


进入选择SDK下载页面,


进入下载页面如果是在Windows下选择zip格式的,在Linux下选择tar.gz的,下载完成后解压压缩文件

weibo_android_sdk-master文件夹中会有以下项目文件:


其中以.demo结尾的都是使用SDK开发的一些实例,我们先用这些Demo来实现我们第三方登陆与实现分享功能,

我们把以上项目导入到我们的Eclipse中。

第二步:创建自己的应用



进入如下页面:


进入创建应用页面:


应用创建成功后,进入页面

找到App Key    App Secret这是开发必用的!点击高级信息:

在此页面,回调页面设置,此回调页面必须设置,马上在导入的项目中会用到!先记下此处,至关重要!

第三步:开始进行开发:

我们将刚刚下载好的·SDK中的实例项目导入到Eclipse中项目目录结构如下所示:

编辑MainActivity.java中的内容:

将    CONSUMER_KEY   替换为自己新建应用的App Key

将     刚刚需要设置回调页面的地方设置     为 :"http://www.sina.com"  即:



到此差不多可以了,我们运行下项目:

注意以上  access_token   以下们进行的各种操作都离不开它,就像一个通行证可以畅通无阻的访问自己以及自己关注的好友的微博信息,以及发送微博都离不开access_token


我们点击微博功能演示——>发送微博    进入以下界面:


发送微博,我们进入到新浪微博,官方主页查看自己的微博:




此为,分享的简单实现!

第四步:第三方登陆的实现

     经过以上三步,可以进入到SDK自带的分享界面进行分享,同时,我们也已经实现了第三方登陆,我们需要获得新浪微博上面的信息,我们就需要用到access_token令牌,使用令牌可以获得个人资料,调用发微博接口等等!下面,我们来看如何获取个人资料!



打开APITypeListActivity.java  将登录用户的Uid传进来就可以,查看当前登录用户的个人信息以及最近发布的几条微博!


项目下载地址:http://download.csdn.net/detail/qq435757399/4779056






    
[3] C字符串与NSString其间的转换
    来源: 互联网  发布时间: 2014-02-18
C字符串与NSString之间的转换

C字符串与NSString之间的转换

代码:

    const char *cString = "这是一个C字符串, c string";
    NSString *nsstring = @"这是个NSString字符串, nsstring";
    NSLog(@"cString字符串-->%s ",cString);
    NSLog(@"NSString字符串-->%@",nsstring);
    
    const  char *cString2 = [nsstring UTF8String];
    NSString *nsstring2 = [NSString stringWithUTF8String:cString];
    NSLog(@"cString2字符串-->%s ",cString2);
    NSLog(@"NSString2字符串-->%@",nsstring2);

结果:


char类型的C字符串中文在Mac系统下打印出来显示乱码,这种乱码并不是错误,是ASCII解码所导致的。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
sqlserver iis7站长之家
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3