抽屉组件slidingdrawer;bitmap切图;gridview和listview一样单元布局用AbsListView.LayoutParams;

界面代码

<SlidingDrawer
        android:id="@+id/sliding"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:content="@+id/sliding_content"
        android:handle="@+id/sliding_handle"

        android:orientation="horizontal" >
        <!-- 水平只能从右到左,垂直只能从下到上 -->
        <ImageView
            android:id="@id/sliding_handle"
            android:layout_width="30dp"
            android:layout_height="700dp"
           />
        <LinearLayout
            android:id="@id/sliding_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#00ff00" >
            <TextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="这里是内容"
                android:textColorHighlight="#0000ff" />
        </LinearLayout>
    </SlidingDrawer>

img=(ImageView)findViewById(R.id.sliding_handle);
img.setBackgroundResource(R.drawable.pop);
drawer=(SlidingDrawer)findViewById(R.id.sliding);
drawer.setOnDrawerOpenListener(new OnDrawerOpenListener() {

@Override
public void onDrawerOpened() {
img.setBackgroundResource(R.drawable.push);

}
});
drawer.setOnDrawerCloseListener(new OnDrawerCloseListener() {

@Override
public void onDrawerClosed() {
img.setBackgroundResource(R.drawable.pop);

}
});


多张小图在一张图片里bitmap切图工具类

package com.kane.switcherresolverslidingrating.util;


import com.kane.switcherresolverslidingrating.R;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
public class ImageUtil {
private static Bitmap uiMain;
public static Bitmap getTopbar() {
return topbar;
}


public static void setTopbar(Bitmap topbar) {
ImageUtil.topbar = topbar;
}


public static Bitmap getCanSelect() {
return canSelect;
}


public static void setCanSelect(Bitmap canSelect) {
ImageUtil.canSelect = canSelect;
}


public static Bitmap getTopStar() {
return topStar;
}


public static void setTopStar(Bitmap topStar) {
ImageUtil.topStar = topStar;
}


public static Bitmap getAnswer() {
return answer;
}


public static void setAnswer(Bitmap answer) {
ImageUtil.answer = answer;
}
private static Bitmap topbar;
private static Bitmap canSelect;
private static Bitmap topStar;
private static Bitmap answer;
public static void init(Activity a){
//对图片进行初始化的处理
//decodeStream(a.getAssets().open("ui_main.png"))图片存在assets中或sdcard中,还有decodefile某个网络文件
uiMain=BitmapFactory.decodeResource(a.getResources(), R.drawable.ui_main);

//切割出某一部分
topStar=getBitmapPiece(1020, 1939, 108, 108);
topbar=getBitmapPiece(975, 893, 640, 96);
canSelect=getBitmapPiece(975, 338, 74, 76);
answer=getBitmapPiece(1602, 155, 66, 63);

}
private static Bitmap getBitmapPiece(int x,int y,int width,int height){
return Bitmap.createBitmap(uiMain,x,y,width,height);
}
}

自定义gridadapter

package com.kane.switcherresolverslidingrating.adapter;
import java.util.List;
import java.util.Map;
import com.kane.switcherresolverslidingrating.R;
import com.kane.switcherresolverslidingrating.util.Globals;
import com.kane.switcherresolverslidingrating.util.ImageUtil;


import android.R.bool;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.provider.Settings.Global;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView.LayoutParams;
import android.widget.BaseAdapter;
import android.widget.TextView;
/**
 * gridview 每个格子的布局
 * @author lenovo
 *
 */
public class StageAdapter extends BaseAdapter{
private Context ctx;
private List<Map<String,Object>> allValues;
public StageAdapter(Context ctx,List<Map<String, Object>> allValues){
this.ctx=ctx;
this.allValues=allValues;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return allValues.size();
}


@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return allValues.get(position);
}


@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView==null) {
convertView=LayoutInflater.from(ctx).inflate(R.layout.grid_stage,null);
convertView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT
, Globals.SCREEN_HEIGHT/9
));
Map<String,Object> map=allValues.get(position);
TextView stageNumText=(TextView)convertView.findViewById(R.id.stage_text);
stageNumText.setText(map.get("stageNum").toString());
//设置背景颜色,在集合中保存一个关卡是否可以玩的标记
boolean flag=(Boolean)map.get("flag");
if (flag) {
stageNumText.setBackgroundDrawable(new BitmapDrawable(ctx.getResources(),ImageUtil.getCanSelect()));

}
else {
stageNumText.setBackgroundDrawable(new BitmapDrawable(ctx.getResources(),ImageUtil.getAnswer()));
}
}
return convertView;
}
}

单元格界面代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:paddingLeft="10dp"
    android:paddingTop="10dp"
    android:paddingRight="10dp"  android:paddingBottom="10dp" >
    <TextView android:id="@+id/stage_text"
        android:layout_width="match_parent" 
        android:layout_height="match_parent"
        android:gravity="center"
        android:textColor="#999999"
        android:textSize="10sp"/>
</LinearLayout>

package com.kane.switcherresolverslidingrating;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import com.kane.switcherresolverslidingrating.adapter.StageAdapter;
import com.kane.switcherresolverslidingrating.util.ImageUtil;


import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.graphics.drawable.BitmapDrawable;
import android.view.Menu;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;


public class GridActivity extends Activity {
private GridView gridView;
private LinearLayout topbar;
private TextView topStarText;
private List<Map<String,Object>> allValues=new ArrayList<Map<String,Object>>();
private StageAdapter adapter;
@SuppressWarnings("deprecation")//忽略一些警告信息
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid);
gridView=(GridView)findViewById(R.id.grid);
topbar = (LinearLayout) findViewById(R.id.top_bar);
topStarText = (TextView) findViewById(R.id.title_text);

topbar.setBackgroundDrawable(new BitmapDrawable(getResources(),ImageUtil.getTopbar()));
topStarText.setBackgroundDrawable(new BitmapDrawable(getResources(),ImageUtil.getTopStar()));
topStarText.setText("10");
//加入数据
for (int i = 0; i <50; i++) {
Map<String, Object> map=new HashMap<String, Object>();
map.put("stageNum", i+1);
if (i<10) {
map.put("flag",true);

}
else {
map.put("flag", false);
}
allValues.add(map);
}
adapter=new StageAdapter(this, allValues);
gridView.setAdapter(adapter);
//加入监听,判断用户所点击的关卡项
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Map<String, Object> map = allValues.get(arg2);

int stageNum = (Integer) map.get("stageNum");
boolean flag = (Boolean) map.get("flag");
if (flag) {
Toast.makeText(GridActivity.this,
"进入了关卡: " + stageNum, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(GridActivity.this,
"该关卡不能玩: " + stageNum, Toast.LENGTH_SHORT).show();
}



}
});
}
}

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:orientation="vertical" >


    <LinearLayout
        android:id="@+id/top_bar"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal" >


        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="3" />


        <TextView
            android:id="@+id/title_text"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:textColor="#ffffff"
            android:textSize="10sp" />


        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="3" />
    </LinearLayout>


    <GridView
        android:id="@+id/grid"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="8"
        android:gravity="center"
        android:numColumns="6" >


        <!-- numColumns="6"可以限定每行六个,这样每个子单云布局的宽度可以是match_parent -->
    </GridView>


</LinearLayout>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值