`
yangsongjing
  • 浏览: 243662 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

android textView 书签效果

阅读更多
在网站上看了很多人都说过textview显示内容,要加书签效果,但是都没有具体的例子,因为项目中用到了,所以按自己的想法写了一个。很简单不过效果也还不错。好的直接上代码,要运行的话可直接在sd卡路径下加a.txt文件就可以正常运行了

package com.cn;

import java.io.FileInputStream;

import org.apache.http.util.EncodingUtils;

import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;

public class TextViewTestActivity extends Activity {
private TextView tv;
private ScrollView sv;
private Button btn;
public static final String SDCARD_PATH = Environment
.getExternalStorageDirectory() + "/" + "a.txt";
private int w = 0, h = 0;
private SharedPreferences sp;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.tv);
sv = (ScrollView) findViewById(R.id.sv);
btn = (Button) findViewById(R.id.btn);
tv.setText(readTxt());
sp = TextViewTestActivity.this.getSharedPreferences("remberLocation",
MODE_WORLD_READABLE);
w = sp.getInt("scrollx", 100);
h = sp.getInt("scrolly", 100);

btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Editor edit = sp.edit();
edit.putInt("scrollx", sv.getScrollX());
edit.putInt("scrolly", sv.getScrollY());
edit.commit();
}
});

sv.post(mScrollView);
}

private Runnable mScrollView = new Runnable() {
@Override
public void run() {
if (w == 100 && h == 100) {

} else {
sv.scrollTo(w, h);
Toast.makeText(TextViewTestActivity.this, w + "--" + h, 1)
.show();
}
}

};

public String readTxt() {
String res = "";
try {
FileInputStream fin = new FileInputStream(SDCARD_PATH);
int length = fin.available();
byte[] buffer = new byte[length];
fin.read(buffer);
res = EncodingUtils.getString(buffer, "gbk");
fin.close();// 关闭资源
} catch (Exception e) {
e.printStackTrace();
}
return res;
}
}

需要注意的是 scrollTo 调用该方法不能放在oncareate里面 需要用post 放到线程即可。需要保证数据加载好然后执行此方法。
1
6
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics